제출 #558200

#제출 시각아이디문제언어결과실행 시간메모리
558200Jesus최후의 만찬 (IOI12_supper)C++14
0 / 100
62 ms6084 KiB
#include<bits/stdc++.h> #include "advisor.h" using namespace std; pair<int,int> colores[100001]; int andamio[100001]; queue<int> libres; void ComputeAdvice(int *C, int N, int K, int M){ for(int i=0;i<N;i++){ colores[i]={-1,-1}; } for(int i=0;i<N;i++){ if(i<K){ andamio[i]=i; colores[i].second=i; } colores[C[i]].first=i; } for(int i=0;i<K;i++){ if(colores[andamio[i]].first==-1) { WriteAdvice(0); libres.push(i); } else { WriteAdvice(1); } } for(int i=0;i<N;i++){ if(colores[C[i]].second==-1){ int pos=0; if(libres.size()>0){ pos=libres.front(); libres.pop(); } colores[C[i]].second=pos; andamio[pos]=C[i]; colores[andamio[pos]].second=-1; } if(colores[C[i]].first==i){ libres.push(colores[C[i]].second); WriteAdvice(0); } else WriteAdvice(1); } }
#include<bits/stdc++.h> #include "assistant.h" using namespace std; queue<int> lib; int an[100001]; int col[100001]; void Assist(unsigned char *A, int N, int K, int R){ for(int i=0;i<N;i++){ if(i<K){ an[i]=i; col[i]=i; if(A[i]==0) lib.push(i); } else col[i]=-1; } for(int i=0;i<N;i++){ int c=GetRequest(); if(col[c]==-1){ int pos=0; if(lib.size()>0){ pos=lib.front(); lib.pop(); } PutBack(an[pos]); col[an[pos]]=-1; col[c]=pos; an[pos]=c; } if(A[i+K]==0) lib.push(col[c]); } }
#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...