제출 #668685

#제출 시각아이디문제언어결과실행 시간메모리
668685allin27x게임 (IOI14_game)C++14
100 / 100
365 ms16228 KiB
#include <iostream>
#include <vector>
using namespace std;
int gr_nr = 0;
vector<vector<int>> groups;
vector<int> vals;

void ds_gr(int a, int b){
    if (a==b) return;
    int m = (a+(b-a+1)/2);
    for (int i=a; i<m; i++){
        for (int j=m; j<=b; j++){
            groups[i][j] = gr_nr;
        }
    }
    vals[gr_nr] = (m-a)*(b-m+1);
    gr_nr++;
    ds_gr(a, m-1); ds_gr(m, b);
}
void initialize(int n){
    groups.resize(n, vector<int> (n,0));
    vals.resize(n, 0);
    ds_gr(0, n-1);
}

int hasEdge(int u, int v){
    return !(--vals[groups[min(u,v)][max(u,v)]]);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...