This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#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 time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |