Submission #1236067

#TimeUsernameProblemLanguageResultExecution timeMemory
1236067stanirina식물 비교 (IOI20_plants)C++20
5 / 100
47 ms6596 KiB
#include <bits/stdc++.h>
#include "plants.h"

#include <cstdio>
#include <cassert>

using namespace std;

vector<int> v;
vector<int> rc;
int nn;
int kk;

void init(int k, std::vector<int> r) {
    kk=k;
    nn=r.size();
    rc.resize(nn*2);
    v.resize(nn,0);
    for(int i=0;i<nn;i++)rc[i]=rc[i+nn]=r[i];
    //for(int i=0;i<2*nn;i++)cout<<rc[i]<<' ';
    //cout<<endl;
    for(int i=nn;i<2*nn;i++){
        if(rc[i]==rc[i-1])v[nn-1]++;
        else break;
    }
    //cout<<v[n-1]<<endl;
    for(int i=nn-2;i>=0;i--){
        if(rc[i]==rc[i+1])v[i]=v[i+1]+1;
        else v[i]=0;
    }
    for(int i=0;i<nn;i++)v[i]++;
    //for(int i=0;i<n;i++)cout<<v[i]<<' ';
    //cout<<endl;
	return;
}

int compare_plants(int x, int y) {
    //cout<<v[x]<<' '<<v[y]<<endl;
	if(x+v[x]>=y){
        if(rc[x]==1)return -1;
        else return 1;
	}
	if((y+v[y])>=nn && (y+v[y])%nn>=x){
        if(rc[y]==1)return 1;
        else return -1;
	}
	return 0;
}
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...