Submission #58827

#TimeUsernameProblemLanguageResultExecution timeMemory
58827joaogui1Last supper (IOI12_supper)C++14
30 / 100
783 ms182400 KiB
#include "advisor.h" #include <bits/stdc++.h> #define ff first #define ss second using namespace std; typedef pair<int, int> pii; set<pii> s; int sca[100100]; vector <int> ans; queue <int> q[100100]; vector <int> dectobin(int n){ vector<int> r; for(int i = 17; i > -1; --i) if((1 << i) <= n){ r.push_back(1); n -= (1 << i); } else r.push_back(0); return r; } void ComputeAdvice(int *C, int N, int K, int M){ vector <int> aux; for(int i = 0; i < N; ++i) q[C[i]].push(-i); for(int i = 0; i < N; ++i) q[i].push(-2*N); for(int i = 0; i < K; ++i) s.insert(pii(q[i].front(), i)); for(int i = 0; i < N; ++i){ if(s.count(pii(q[C[i]].front(), C[i])) != 0){ s.erase(pii(q[C[i]].front(), C[i])); q[C[i]].pop(); s.insert(pii(q[C[i]].front(), C[i])); } else{ ans.push_back(s.begin() -> ss); q[C[i]].pop(); s.erase(s.begin()); s.insert(pii(q[C[i]].front(), C[i])); } } for(int i = 0; i < ans.size(); ++i){ aux = dectobin(ans[i]); for(int j = 0; j < aux. size(); ++j) WriteAdvice(aux[j]); } }
#include "assistant.h" #include<bits/stdc++.h> using namespace std; set <int> scaf; vector<int> bintodec(unsigned char *A, int R){ int aux = 0; vector<int> r; for(int i = 0; i < R && A[i] != 2; ++i){ aux += (1 << (17 - (i%18)))*(A[i] == 1); if((i%18) == 17){ r.push_back(aux); aux = 0; } } return r; } void Assist(unsigned char *A, int N, int K, int R){ int cnt = 0; vector<int> rem = bintodec(A, R); for(int i = 0; i < K; ++i) scaf.insert(i); for(int i = 0; i < N; ++i){ int req = GetRequest(); if(scaf.count(req)) continue; else{ scaf.erase(rem[cnt]); scaf.insert(req); PutBack(rem[cnt++]); } } }

Compilation message (stderr)

advisor.cpp: In function 'void ComputeAdvice(int*, int, int, int)':
advisor.cpp:43:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for(int i = 0; i < ans.size(); ++i){
                  ~~^~~~~~~~~~~~
advisor.cpp:45:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int j = 0; j < aux. size(); ++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...
#Verdict Execution timeMemoryGrader output
Fetching results...