제출 #565023

#제출 시각아이디문제언어결과실행 시간메모리
565023RealSnake저장 (Saveit) (IOI10_saveit)C++14
0 / 100
859 ms12412 KiB
#include "bits/stdc++.h" using namespace std; #include "grader.h" #include "encoder.h" void encode(int n, int h, int p, int a[], int b[]) { vector<int> v[n]; for(int i = 0; i < p; i++) { v[a[i]].push_back(b[i]); v[b[i]].push_back(a[i]); } bool vis[n]; int dd[n]; for(int i = n - 1; i >= 0; i--) { for(int j = 0; j < n; j++) { vis[j] = 0; dd[j] = 1e9; } set<pair<int, int>> s; s.insert({0, i}); dd[i] = 0; while(s.size()) { pair<int, int> p = *s.begin(); s.erase(s.begin()); int x = p.second; int d = p.first; if(vis[x]) continue; vis[x] = 1; for(int j : v[x]) { if(d + (j < h) < dd[j]) { dd[j] = d + (j < h); vis[x] = 0; s.insert({d + (j < h), j}); } } } for(int j = min(h - 1, i); j >= 0; j--) { for(int bit = 0; bit < 10; bit++) encode_bit((dd[j] & (1 << bit)) > 0); } } return; }
#include "bits/stdc++.h" using namespace std; #include "grader.h" #include "encoder.h" void decode(int n, int h) { for(int i = n - 1; i >= 0; i--) { for(int j = min(h - 1, i); j >= 0; j--) { int d = 0; for(int bit = 0; bit < 10; bit++) { if(decode_bit()) d += (1 << bit); } hops(j, i, d); if(i < h && i != j) hops(i, j, d); } } return; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...