제출 #1296465

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

vector <int> vis;

int kk;

vector<vector<int>> adj;

void init(int n, int k){
    
    adj.assign(n, {});
    
    kk=k;
    
    vis.resize(n);
    
    for (int i=0; i<k; i++){
        vis[i]=k-i;
        if (i+1<k){adj[i].push_back(i+1);}
    }
    for (int i=k; i<n; i++){
        vis[i]=k+1;
    }
}

void dfs(int node,int color){
    vis[node]=color;
    //cout<<node<<' '<<color<<" node and color"<<"\n";
    for (int i=0; i<adj[node].size(); i++){
        
        cout<<kk<<" "<<color<<"\n";
        
        
        if (kk-color==adj[node][i]){
            vis[kk-color]=0;    
        }
        
        if (vis[adj[node][i]]>color){
            dfs(adj[node][i],color);
        }
    }
}

int add_teleporter(int u, int v){
    
    adj[u].push_back(v);
    
    if (u==v){return 1;}
    
    if (v==kk-vis[u]){return 1;}
    
    if (vis[u]<vis[v]){
        dfs(v,vis[u]);
    }
    
    for (int i=0; i<kk; i++){
        if (vis[i]<kk-i){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...