Submission #7971

#TimeUsernameProblemLanguageResultExecution timeMemory
7971dohyun0324Last supper (IOI12_supper)C++98
0 / 100
106 ms8920 KiB
#include "advisor.h" #include<queue> using namespace std; typedef pair<int,int> ppair; priority_queue<ppair>q; int a[100010],ch[100010],arr[100010],w,paint2[100010],dap[100010],pdap[100010]; void ComputeAdvice(int *C, int N, int K, int M) { int i,p,p2; for(i=N-1;i>=0;i--) { if(ch[C[i]]==0) a[i]=N; else a[i]=ch[C[i]]; ch[C[i]]=i; } for(i=0;i<K;i++) { paint2[i]=1; if(ch[i]==0) q.push(make_pair(N,-i-1)); else q.push(make_pair(ch[i],-i-1)); arr[i]=-1; } for(i=0;i<=N-1;i++) { if(paint2[C[i]]==1) { arr[C[i]]=i; continue; } p=q.top().first; p2=q.top().second; if(p2<=-1) pdap[-p2-1]=1; else dap[arr[C[p2]]]=1; if(p2<=-1) paint2[-p2-1]--; else paint2[C[p2]]--; q.pop(); if(a[C[i]]==0) q.push(make_pair(N,i)); else q.push(make_pair(a[i],i)); paint2[C[i]]++; arr[C[i]]=i; } for(i=0;i<K;i++) { if(arr[i]==-1) pdap[i]=1; } for(i=0;i<K;i++) { WriteAdvice(pdap[i]); } for(i=0;i<N;i++) { WriteAdvice(dap[i]); } }
#include "assistant.h" int paint[100010],request[100010],st[100010],top,ch2[100010],c; void Assist(unsigned char *A, int N, int K, int R) { int i; for(i=0;i<K;i++) paint[i]=A[i]; for(i=0;i<N;i++) request[i]=A[K+i]; for(i=0;i<K;i++) { if(paint[i]==1) st[++top]=i; ch2[i]++; } for(i=0;i<N;i++) { c=GetRequest(); if(ch2[c]==1) { if(request[i]==1) st[++top]=c; continue; } PutBack(st[top]); ch2[c]++; ch2[st[top]]--; st[top--]=0; if(request[i]==1) st[++top]=c; } }

Compilation message (stderr)

advisor.cpp: In function 'void ComputeAdvice(int*, int, int, int)':
advisor.cpp:9:11: warning: variable 'p' set but not used [-Wunused-but-set-variable]
     int i,p,p2;
           ^
#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...