답안 #272129

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
272129 2020-08-18T09:38:29 Z sjimed 저장 (Saveit) (IOI10_saveit) C++14
0 / 100
247 ms 11760 KB
#include "grader.h"
#include "encoder.h"
#include<bits/stdc++.h>
using namespace std;

#define fast ios::sync_with_stdio(false); cin.tie(0);
#define fi first
#define se second
#define all(v) (v).begin(), (v).end()
#define em emplace
#define eb emplace_back
#define mp make_pair

typedef long long ll;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
const ll INF = 1e18;
const int inf = 1e9;

static int n, h, m;
static int ans[40][1010];
static vector<int> g[1010];
static int p[1010];
static bool chk[1010];

static void dfs(int x) {
  chk[x] = true;
  for(auto i : g[x]) {
    if(chk[i]) continue;

    p[i] = x;
    dfs(i);
  }
}

void encode(int nv, int nh, int ne, int *v1, int *v2){
  n = nv;
  h = nh;
  m = ne;

  for(int i=0; i<m; i++) {
    g[v1[i]].eb(v2[i]);
    g[v2[i]].eb(v1[i]);
  }

  dfs(0);

  for(int i=0; i<n; i++) {
    for(int j=0; j<10; j++) {
      if(p[i] & (1<<j)) encode_bit(1);
      else encode_bit(0);
    }
  }

  for(int s=0; s<h; s++) {
    queue<int> q;

    q.em(s);
    ans[s][s] = 1;

    while(q.size()) {
      int x = q.front();
      q.pop();

      for(auto i : g[x]) {
        if(ans[s][i]) continue;

        ans[s][i] = ans[s][x] + 1;
        q.em(i);
      }
    }
  }

  for(int i=0; i<h; i++) {
    for(int j=0; j<n; j++) {
      ans[i][j]--;
    }
  }

  for(int i=0; i<h; i++) {
    for(int j=1; j < n; j+=3) {

      int t = 0;
      for(int k=0; k < 3; k++) {
        t *= 3;
        t += (ans[i][j+k] - ans[i][p[j + k]]) + 1;
      }
     
      for(int k=0; k<5; k++) {
        if(t & (1<<k)) encode_bit(1);
        else encode_bit(0);
      }
    }
  }

  for(int i=0; i<h; i++) {
    for(int j=0; j<10; j++) {
      if(ans[i][0] & (1<<j)) encode_bit(1);
      else encode_bit(0);
    }
  }
}
#include "grader.h"
#include "decoder.h"
#include<bits/stdc++.h>
using namespace std;

#define fast ios::sync_with_stdio(false); cin.tie(0);
#define fi first
#define se second
#define all(v) (v).begin(), (v).end()
#define em emplace
#define eb emplace_back
#define mp make_pair

typedef long long ll;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
const ll INF = 1e18;
const int inf = 1e9;

static int n, h;
static int p[1010];
static int ans[40][1110];
static vector<int> g[1010];

static void dfs(int x) {
   for(auto i : g[x]) {
      for(int j=0; j<h; j++) 
         ans[j][i] += ans[j][x];
      
      dfs(i);
   }
}

void decode(int nv, int nh) {
   n = nv;
   h = nh;

   for(int i=0; i<n; i++) {
      int b = 0;
      for(int j=0; j<10; j++) {
         if(decode_bit()) b |= 1<<j;
      }

      p[i] = b;
      if(i) g[p[i]].eb(i);
   }

   for(int i=0; i<h; i++) {
      for(int j=1; j<n; j+=3) {
         int d = 0;
         for(int k=0; k<5; k++) {
            d |= decode_bit() << k;
         }

         for(int k=2; k>=0; k--) {
            ans[i][j+k] = d % 3 - 1;
            d /= 3;
         }
      }
   }

   for(int i=0; i<h; i++) {
      for(int j=0; j<10; j++) {
         if(decode_bit()) ans[i][0] |= 1 << j;
      }
   }

   dfs(0);

   for(int i=0; i<h; i++) {
      for(int j=0; j<n; j++) {
         hops(i, j, ans[i][j]);
      }
   }
}
# 결과 실행 시간 메모리 Grader output
1 Correct 247 ms 11760 KB Output is partially correct - 70300 call(s) of encode_bit()
2 Correct 4 ms 4736 KB Output is correct - 110 call(s) of encode_bit()
3 Incorrect 27 ms 5964 KB Output isn't correct
4 Correct 3 ms 4736 KB Output is correct - 150 call(s) of encode_bit()
5 Incorrect 35 ms 6016 KB Output isn't correct
6 Correct 34 ms 6256 KB Output is partially correct - 70300 call(s) of encode_bit()
7 Correct 49 ms 6440 KB Output is partially correct - 70300 call(s) of encode_bit()
8 Correct 27 ms 5984 KB Output is correct - 67570 call(s) of encode_bit()
9 Correct 30 ms 5888 KB Output is partially correct - 70300 call(s) of encode_bit()
10 Correct 28 ms 5888 KB Output is partially correct - 70300 call(s) of encode_bit()
11 Correct 37 ms 6236 KB Output is partially correct - 70300 call(s) of encode_bit()
12 Correct 31 ms 6312 KB Output is partially correct - 70300 call(s) of encode_bit()
13 Correct 57 ms 6564 KB Output is partially correct - 70300 call(s) of encode_bit()
14 Correct 28 ms 5888 KB Output is partially correct - 70300 call(s) of encode_bit()
15 Correct 32 ms 5888 KB Output is partially correct - 70300 call(s) of encode_bit()
16 Correct 56 ms 6432 KB Output is partially correct - 70300 call(s) of encode_bit()
17 Correct 53 ms 6480 KB Output is partially correct - 70300 call(s) of encode_bit()
18 Correct 57 ms 6704 KB Output is partially correct - 70300 call(s) of encode_bit()
19 Correct 49 ms 6368 KB Output is partially correct - 70300 call(s) of encode_bit()
20 Correct 79 ms 7296 KB Output is partially correct - 70300 call(s) of encode_bit()
21 Correct 86 ms 7112 KB Output is partially correct - 70300 call(s) of encode_bit()
22 Correct 56 ms 6752 KB Output is partially correct - 70300 call(s) of encode_bit()
23 Correct 95 ms 7480 KB Output is partially correct - 70300 call(s) of encode_bit()
# 결과 실행 시간 메모리 Grader output
1 Correct 247 ms 11760 KB Output is partially correct - 70300 call(s) of encode_bit()
2 Correct 4 ms 4736 KB Output is correct - 110 call(s) of encode_bit()
3 Incorrect 27 ms 5964 KB Output isn't correct
4 Correct 3 ms 4736 KB Output is correct - 150 call(s) of encode_bit()
5 Incorrect 35 ms 6016 KB Output isn't correct
6 Correct 34 ms 6256 KB Output is partially correct - 70300 call(s) of encode_bit()
7 Correct 49 ms 6440 KB Output is partially correct - 70300 call(s) of encode_bit()
8 Correct 27 ms 5984 KB Output is correct - 67570 call(s) of encode_bit()
9 Correct 30 ms 5888 KB Output is partially correct - 70300 call(s) of encode_bit()
10 Correct 28 ms 5888 KB Output is partially correct - 70300 call(s) of encode_bit()
11 Correct 37 ms 6236 KB Output is partially correct - 70300 call(s) of encode_bit()
12 Correct 31 ms 6312 KB Output is partially correct - 70300 call(s) of encode_bit()
13 Correct 57 ms 6564 KB Output is partially correct - 70300 call(s) of encode_bit()
14 Correct 28 ms 5888 KB Output is partially correct - 70300 call(s) of encode_bit()
15 Correct 32 ms 5888 KB Output is partially correct - 70300 call(s) of encode_bit()
16 Correct 56 ms 6432 KB Output is partially correct - 70300 call(s) of encode_bit()
17 Correct 53 ms 6480 KB Output is partially correct - 70300 call(s) of encode_bit()
18 Correct 57 ms 6704 KB Output is partially correct - 70300 call(s) of encode_bit()
19 Correct 49 ms 6368 KB Output is partially correct - 70300 call(s) of encode_bit()
20 Correct 79 ms 7296 KB Output is partially correct - 70300 call(s) of encode_bit()
21 Correct 86 ms 7112 KB Output is partially correct - 70300 call(s) of encode_bit()
22 Correct 56 ms 6752 KB Output is partially correct - 70300 call(s) of encode_bit()
23 Correct 95 ms 7480 KB Output is partially correct - 70300 call(s) of encode_bit()
# 결과 실행 시간 메모리 Grader output
1 Correct 247 ms 11760 KB Output is partially correct - 70300 call(s) of encode_bit()
2 Correct 4 ms 4736 KB Output is correct - 110 call(s) of encode_bit()
3 Incorrect 27 ms 5964 KB Output isn't correct
4 Correct 3 ms 4736 KB Output is correct - 150 call(s) of encode_bit()
5 Incorrect 35 ms 6016 KB Output isn't correct
6 Correct 34 ms 6256 KB Output is partially correct - 70300 call(s) of encode_bit()
7 Correct 49 ms 6440 KB Output is partially correct - 70300 call(s) of encode_bit()
8 Correct 27 ms 5984 KB Output is correct - 67570 call(s) of encode_bit()
9 Correct 30 ms 5888 KB Output is partially correct - 70300 call(s) of encode_bit()
10 Correct 28 ms 5888 KB Output is partially correct - 70300 call(s) of encode_bit()
11 Correct 37 ms 6236 KB Output is partially correct - 70300 call(s) of encode_bit()
12 Correct 31 ms 6312 KB Output is partially correct - 70300 call(s) of encode_bit()
13 Correct 57 ms 6564 KB Output is partially correct - 70300 call(s) of encode_bit()
14 Correct 28 ms 5888 KB Output is partially correct - 70300 call(s) of encode_bit()
15 Correct 32 ms 5888 KB Output is partially correct - 70300 call(s) of encode_bit()
16 Correct 56 ms 6432 KB Output is partially correct - 70300 call(s) of encode_bit()
17 Correct 53 ms 6480 KB Output is partially correct - 70300 call(s) of encode_bit()
18 Correct 57 ms 6704 KB Output is partially correct - 70300 call(s) of encode_bit()
19 Correct 49 ms 6368 KB Output is partially correct - 70300 call(s) of encode_bit()
20 Correct 79 ms 7296 KB Output is partially correct - 70300 call(s) of encode_bit()
21 Correct 86 ms 7112 KB Output is partially correct - 70300 call(s) of encode_bit()
22 Correct 56 ms 6752 KB Output is partially correct - 70300 call(s) of encode_bit()
23 Correct 95 ms 7480 KB Output is partially correct - 70300 call(s) of encode_bit()
# 결과 실행 시간 메모리 Grader output
1 Correct 247 ms 11760 KB Output is partially correct - 70300 call(s) of encode_bit()
2 Correct 4 ms 4736 KB Output is correct - 110 call(s) of encode_bit()
3 Incorrect 27 ms 5964 KB Output isn't correct
4 Correct 3 ms 4736 KB Output is correct - 150 call(s) of encode_bit()
5 Incorrect 35 ms 6016 KB Output isn't correct
6 Correct 34 ms 6256 KB Output is partially correct - 70300 call(s) of encode_bit()
7 Correct 49 ms 6440 KB Output is partially correct - 70300 call(s) of encode_bit()
8 Correct 27 ms 5984 KB Output is correct - 67570 call(s) of encode_bit()
9 Correct 30 ms 5888 KB Output is partially correct - 70300 call(s) of encode_bit()
10 Correct 28 ms 5888 KB Output is partially correct - 70300 call(s) of encode_bit()
11 Correct 37 ms 6236 KB Output is partially correct - 70300 call(s) of encode_bit()
12 Correct 31 ms 6312 KB Output is partially correct - 70300 call(s) of encode_bit()
13 Correct 57 ms 6564 KB Output is partially correct - 70300 call(s) of encode_bit()
14 Correct 28 ms 5888 KB Output is partially correct - 70300 call(s) of encode_bit()
15 Correct 32 ms 5888 KB Output is partially correct - 70300 call(s) of encode_bit()
16 Correct 56 ms 6432 KB Output is partially correct - 70300 call(s) of encode_bit()
17 Correct 53 ms 6480 KB Output is partially correct - 70300 call(s) of encode_bit()
18 Correct 57 ms 6704 KB Output is partially correct - 70300 call(s) of encode_bit()
19 Correct 49 ms 6368 KB Output is partially correct - 70300 call(s) of encode_bit()
20 Correct 79 ms 7296 KB Output is partially correct - 70300 call(s) of encode_bit()
21 Correct 86 ms 7112 KB Output is partially correct - 70300 call(s) of encode_bit()
22 Correct 56 ms 6752 KB Output is partially correct - 70300 call(s) of encode_bit()
23 Correct 95 ms 7480 KB Output is partially correct - 70300 call(s) of encode_bit()