Submission #125589

#TimeUsernameProblemLanguageResultExecution timeMemory
125589thebes앵무새 (IOI11_parrots)C++14
17 / 100
9 ms1776 KiB
#include <bits/stdc++.h> #include "encoder.h" #include "encoderlib.h" using namespace std; map<vector<int>,int> mp; map<int,vector<int>> rev; vector<int> vec; int nxt; void rec(int n){ if(n==5){ if(vec.size()!=5) return; mp[vec]=nxt++; rev[nxt-1]=vec; } else{ if(vec.size()>5) return; rec(n+1); for(int i=1;i<=5;i++){ vec.push_back(n); rec(n+1); } for(int i=0;i<5;i++) vec.pop_back(); } } void encode(int N,int *M){ mp.clear(); rev.clear(); nxt = 0; rec(0); for(int i=0;i<N;i++){ vector<int> w = rev[M[i]]; for(auto v : w){ if(v==4) continue; send(i*4+v); } } }
#include <bits/stdc++.h> #include "decoder.h" #include "decoderlib.h" using namespace std; map<vector<int>,int> mp; map<int,vector<int>> rev; vector<int> vec; int nxt; void rec(int n){ if(n==5){ if(vec.size()!=5) return; mp[vec]=nxt++; rev[nxt-1]=vec; } else{ if(vec.size()>5) return; rec(n+1); for(int i=1;i<=5;i++){ vec.push_back(n); rec(n+1); } for(int i=0;i<5;i++) vec.pop_back(); } } vector<int> heh[200]; void decode(int N,int L,int *X){ mp.clear(); rev.clear(); nxt = 0; rec(0); for(int i=0;i<200;i++) heh[i].clear(); for(int i=0;i<L;i++){ int idx = (X[i]>>2); heh[idx].push_back(X[i]&3); } for(int i=0;i<N;i++){ while(heh[i].size()<5) heh[i].push_back(4); sort(heh[i].begin(),heh[i].end()); } for(int i=0;i<N;i++){ output(mp[heh[i]]); } }
#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...