Submission #138099

#TimeUsernameProblemLanguageResultExecution timeMemory
138099zoooma13Last supper (IOI12_supper)C++14
0 / 100
253 ms17640 KiB
#include "bits/stdc++.h" #include "advisor.h" using namespace std; void ComputeAdvice(int *C, int N, int K, int M) { vector <vector<int>> occ(N); for(int i=0; i<N; i++) occ[i].push_back(1e9); for(int i=N-1; ~i; i--) occ[C[i]].push_back(i); priority_queue <pair<int ,int>> pq; set <int> shelf; for(int i=0; i<K; i++){ pq.push({occ[i].back() ,i}); shelf.insert(i); } vector <bool> seq(N+K ,1); vector <int> lst(N); iota(lst.begin() ,lst.begin()+K ,0); for(int i=0; i<N; i++){ if(shelf.count(C[i])) continue; auto now = pq.top(); pq.pop(); shelf.erase(now.second); seq[lst[now.second]] = 0; shelf.insert(C[i]); occ[C[i]].pop_back(); pq.push({occ[C[i]].back() ,C[i]}); lst[C[i]] = K+i; } for(int i=0; i<seq.size(); i++) WriteAdvice(seq[i]); }
#include "bits/stdc++.h" #include "assistant.h" using namespace std; void Assist(unsigned char *A, int N, int K, int R) { vector <bool> seq(R); for(int i=0; i<R; i++) seq[i] = A[i]; vector <int> can_remove; set <int> shelf; for(int i=0; i<K; i++){ if(!seq[i]) can_remove.push_back(i); shelf.insert(i); } for(int i=K; i<R; i++){ int now = GetRequest(); if(!shelf.count(now)){ PutBack(can_remove.back()); shelf.erase(can_remove.back()); can_remove.pop_back(); shelf.insert(now); } if(!seq[i]) can_remove.push_back(now); } }

Compilation message (stderr)

advisor.cpp: In function 'void ComputeAdvice(int*, int, int, int)':
advisor.cpp:35:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i=0; i<seq.size(); 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...