제출 #70104

#제출 시각아이디문제언어결과실행 시간메모리
70104Abelyan최후의 만찬 (IOI12_supper)C++17
100 / 100
158 ms31256 KiB
#include "advisor.h" #include <bits/stdc++.h> using namespace std; const int N=100006; int a[N],han[N],mp[N],vr[N]; bool pas[N],sc[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<pair<int,int>,int> > pq; for (int i=0;i<k;i++){ if (mp[i]==0)mp[i]=2*N; pq.push({{mp[i]-1,-1},i}); vr[i]=-1; sc[i]=true; } for (int i=0;i<n;i++){ if (sc[c[i]]){ pq.push({{a[i],i},c[i]}); vr[c[i]]=i; han[i]=-1; continue; } sc[c[i]]=true; int k; do{ han[i]=pq.top().second; k=pq.top().first.second; pq.pop(); }while(vr[han[i]]!=k); //cout<<i<< " "<<han[i]<<endl; sc[han[i]]=false; pq.push({{a[i],i},c[i]}); vr[c[i]]=i; } //cout<<endl; vector<int> v; for (int i=n-1;i>=0;i--){ if (pas[c[i]])v.push_back(1); else v.push_back(0); if (han[i]!=-1) 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++){ //cout<<v[i]<<" "; WriteAdvice(v[i]); } //cout<<endl; }
#include "assistant.h" #include <bits/stdc++.h> using namespace std; const int N=100006; queue<int> s; bool onsc[N]; void Assist(unsigned char *A, int n, int v, int R) { for (int i=0;i<v;i++){ if (!A[i])s.push(i); onsc[i]=true; } for (int i=0;i<n;i++){ int k=GetRequest(); if (!A[i+v])s.push(k); if (onsc[k])continue; onsc[k]=true; PutBack(s.front()); //cout<<s.front()<<endl; onsc[s.front()]=false; s.pop(); } }

컴파일 시 표준 에러 (stderr) 메시지

advisor.cpp: In function 'void ComputeAdvice(int*, int, int, int)':
advisor.cpp:55: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...