Submission #1234819

#TimeUsernameProblemLanguageResultExecution timeMemory
1234819guanexParrots (IOI11_parrots)C++20
17 / 100
3 ms840 KiB
#include "encoder.h" #include "encoderlib.h" #include<bits/stdc++.h> using namespace std; int timer = 0; map<int, vector<int>> m; vector<int> x = {0}; void dfs(){ m[timer] = x; timer++; if((int)x.size() == 7){ return; } int last = x[(int)x.size()-1]; for(int i = last; i <= 3; ++i){ x.push_back(i); dfs(); x.pop_back(); } } void encode(int N, int M[]) { int n = N; timer = 0; x.clear(); x = {0}; dfs(); x.clear(); x = {1}; dfs(); x.clear(); x = {2}; dfs(); x.clear(); x = {3}; dfs(); x.clear(); timer = 0; vector<vector<int>> vec(n); for(int i = 0; i < n; ++i){ vec[i] = m[M[i]]; } for(int i = 0; i < n; ++i){ for(auto e:vec[i]){ int num = i; if(e & 1){ num += 64; } if(e & 2){ num += 128; } send(num); } } }
#include "decoder.h" #include "decoderlib.h" #include<bits/stdc++.h> using namespace std; int timer = 0; map<vector<int>, int> m; vector<int> x = {0}; void dfs(){ m[x] = timer; timer++; if((int)x.size() == 7){ return; } int last = x[(int)x.size()-1]; for(int i = last; i <= 3; ++i){ x.push_back(i); dfs(); x.pop_back(); } } void decode(int N, int L, int X[]) { int n = N; timer = 0; x.clear(); x = {0}; dfs(); x.clear(); x = {1}; dfs(); x.clear(); x = {2}; dfs(); x.clear(); x = {3}; dfs(); x.clear(); timer = 0; vector<vector<int>> vec(n); for(int i = 0; i < L; ++i){ int pos = 0; for(int j = 0; j < 6; ++j){ if(X[i] & (1 << j)){ pos += (1 << j); } } int num = 0; if(X[i] & 64){ num++; } if(X[i] & 128){ num++; } vec[pos].push_back(num); } for(auto e:vec){ int ans = m[e]; output(ans); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...