Submission #726176

#TimeUsernameProblemLanguageResultExecution timeMemory
726176n0sk1llGame (APIO22_game)C++17
30 / 100
4027 ms9396 KiB
#include <bits/stdc++.h>

#define FAST ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);cerr.tie(0)
#define mp make_pair
#define xx first
#define yy second
#define pb push_back
#define pf push_front
#define popb pop_back
#define popf pop_front
#define all(x) x.begin(),x.end()
#define ff(i,a,b) for (int i = a; i < b; i++)
#define fff(i,a,b) for (int i = a; i <= b; i++)
#define bff(i,a,b) for (int i = b-1; i >= a; i--)
#define bfff(i,a,b) for (int i = b; i >= a; i--)

using namespace std;
long double typedef ld;
unsigned int typedef ui;
long long int typedef li;
pair<int,int> typedef pii;
pair<li,li> typedef pli;
pair<ld,ld> typedef pld;
vector<vector<int>> typedef graph;
unsigned long long int typedef ull;
//const int mod = 998244353;
const int mod = 1000000007;







//Note to self: Check for overflow

#include "game.h"

int n,k;
graph g(300005);
bool vis[300005];

void init(int N, int K)
{
    n=N,k=K;
    ff(i,0,k-2) g[i].pb(i+1);
}

int posetih_prvog=0;

void dfs(int p, int prvi)
{
    if (p==prvi) posetih_prvog++;
    if (vis[p]) return;
    vis[p]=true;
    for (auto it : g[p]) dfs(it,prvi);
}

int add_teleporter(int u, int v)
{
    g[u].pb(v);
    
    if (u<k && v<k)
    {
        if (v<=u) return 1;
    }

    ff(i,0,n) vis[i]=false;
    bff(i,0,k)
    {
        if (vis[i]) return 1;
        posetih_prvog=0,dfs(i,i);
        if (posetih_prvog>1) 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...