제출 #734562

#제출 시각아이디문제언어결과실행 시간메모리
734562bin9638게임 (APIO22_game)C++17
60 / 100
597 ms5864 KiB
#include <bits/stdc++.h>

#ifndef SKY
#include "game.h"
#endif // SKY

using namespace std;

#define N 100010
#define ll long long
#define fs first
#define sc second
#define ii pair<ll,int>
#define pb push_back

int dp[N],n,k;
vector<int>g[N];

void init(int NNN, int KKK)
{
    n=NNN;
    k=KKK;
    memset(dp,0x3f3f,sizeof(dp));
}

void solve(int u)
{
    int val=(u<k ? u : dp[u]);
    for(auto v:g[u])
        if(dp[v]>val)
        {
            dp[v]=val;
            solve(v);
        }
}

int add_teleporter(int u, int v)
{
    g[v].pb(u);
    solve(v);
   // cout<<u<<" "<<v<<endl;
  //  for(int i=0;i<n;i++)cout<<dp[i]<<" ";cout<<endl;
    for(int i=0;i<k;i++)
        if(dp[i]<=i)
            return 1;
    return 0;
}

#ifdef SKY
int main()
{
    freopen("A.inp","r",stdin);
    freopen("A.out","w",stdout);
    ios::sync_with_stdio(0);
    cin.tie(NULL);
    cout.tie(NULL);
    int n,k;
    cin>>n>>k;
    init(n,k);
    int q;
    cin>>q;
    while(q--)
    {
        int u,v;
        cin>>u>>v;
        cout<<add_teleporter(u,v)<<endl;
    }
    return 0;
}
#endif
#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...