제출 #1346458

#제출 시각아이디문제언어결과실행 시간메모리
1346458Warinchai게임 (APIO22_game)C++20
60 / 100
4014 ms25064 KiB
#include "game.h"
#include<bits/stdc++.h>
using namespace std;

int mx[300005];
vector<int>adj[300005];
int K=0;
int can=0;

void dfs(int u,int val){
    if(u<K&&val>=u)can=1;
    mx[u]=val;
    //cerr<<"go:"<<u<<" "<<val<<"\n";
    for(auto x:adj[u])if(val>mx[x])dfs(x,val);
}

void init(int n, int k) {
    K=k;
    can=0;
    for(int i=0;i<n;i++){
        if(i<k){
            mx[i]=i-1;
            if(i!=0)adj[i].push_back(i-1);
        }
        else mx[i]=-1;
    }
}

int add_teleporter(int u, int v) {
    //cerr<<"add:"<<u<<" "<<v<<"\n";
    adj[u].push_back(v);
    int val=mx[u];
    if(u<K)val=max(val,u);
    if(val>mx[v]){
        //cerr<<"u:"<<u<<" "<<val<<"\n";
        dfs(v,val);
    }
    return can;
}
#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...