Submission #564986

#TimeUsernameProblemLanguageResultExecution timeMemory
564986shrimbSaveit (IOI10_saveit)C++17
50 / 100
246 ms12496 KiB
#include "grader.h" #include "encoder.h" #include"bits/stdc++.h" using namespace std; void encode(int n, int h, int p, int *v1, int *v2){ vector<int> adj[n + 1]; for (int i = 0 ; i < p ; i++) { adj[v1[i]].push_back(v2[i]); adj[v2[i]].push_back(v1[i]); } for (int i = 0 ; i < h ; i++) { int dist[n]; for (int j = 0 ; j < n ; j++) dist[j] = INT_MAX; dist[i] = 0; queue<int> q; q.push(i); while (q.size()) { auto cur = q.front(); q.pop(); for (int j : adj[cur]) { if (dist[j] > dist[cur] + 1) { dist[j] = dist[cur] + 1; q.push(j); } } } for (int j = 0 ; j < n ; j++) { for (int k = 0 ; k < 10 ; k++) { encode_bit(bool(dist[j] & (1 << k))); } } } return; }
#include "grader.h" #include "decoder.h" #include "bits/stdc++.h" using namespace std; void decode(int n, int h) { int dist[h][n]; memset(dist, 0, sizeof dist); for (int i = 0 ; i < h ; i++) { for (int j = 0 ; j < n ; j++) { for (int k = 0 ; k < 10 ; k++) { dist[i][j] |= ((1 << k)*decode_bit()); } } } for (int i = 0 ; i < h ; i++) { for (int j = 0 ; j < n ; j++) { hops(i, j, dist[i][j]); } } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...