Submission #558191

#TimeUsernameProblemLanguageResultExecution timeMemory
558191Jesus최후의 만찬 (IOI12_supper)C++14
0 / 100
60 ms6136 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(an[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]);
    }
}

Compilation message (stderr)

advisor.cpp: In function 'void ComputeAdvice(int*, int, int, int)':
advisor.cpp:33:32: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
   33 |         if(colores[C[i]].second=-1){
      |            ~~~~~~~~~~~~~~~~~~~~^~~
#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...