Submission #70038

#TimeUsernameProblemLanguageResultExecution timeMemory
70038AbelyanLast supper (IOI12_supper)C++17
0 / 100
126 ms8592 KiB
#include "advisor.h" #include <bits/stdc++.h> using namespace std; const int N=100006; int a[N],han[N],mp[N]; bool pas[N]; void ComputeAdvice(int *c, int n, int k, int m) { for (int i=n-1;i>=0;i--){ a[i]=mp[c[i]]-1; if (mp[c[i]]==0)a[i]=2*n; mp[c[i]]=i+1; } priority_queue<pair<int,int> > pq; for (int i=0;i<k;i++){ if (mp[i]==0)mp[i]=2*N; pq.push({mp[i],i}); } for (int i=0;i<n;i++){ han[i]=pq.top().second; pq.pop(); pq.push({a[i],c[i]}); } vector<int> v; for (int i=n-1;i>=0;i--){ if (pas[c[i]])v.push_back(1); else v.push_back(0); pas[han[i]]=false; pas[c[i]]=true; } for (int i=k-1;i>=0;i--){ if (pas[i])v.push_back(1); else v.push_back(0); } reverse(v.begin(),v.end()); for (int i=0;i<v.size();i++){ WriteAdvice(v[i]); } }
#include "assistant.h" #include <bits/stdc++.h> using namespace std; const int N=100006; stack<int> s; bool onsc[N]; void Assist(unsigned char *A, int n, int k, int R) { assert(n<=250); for (int i=0;i<k;i++){ if (!A[i])s.push(i); onsc[i]=true; } for (int i=0;i<n;i++){ int k=GetRequest(); if (onsc[k])continue; PutBack(s.top()); onsc[s.top()]=false; s.pop(); if (!A[i+k])s.push(k); } }

Compilation message (stderr)

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