Submission #953748

#TimeUsernameProblemLanguageResultExecution timeMemory
953748De3b0oGame (APIO22_game)C++17
30 / 100
4099 ms36348 KiB
#pragma GCC optimize("Ofast")
#pragma GCC target("avx2")
#include "game.h"
#include<bits/stdc++.h>
#define ll long long
#define F first
#define S second
#define in insert
#define pb push_back
#define ppb pop_back()
#define d3 ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define cans cout << ans << "\n";
#define yes cout << "Yes" << "\n";
#define no cout << "No" << "\n";
#define pll pair<ll,ll>
#define lin cout << "\n";
#define sqr 340
#define mod 1000000007
#define mid ((l+r)/2)
//#define lc (2*n)
//#define rc (2*n+1)

using namespace std;

bitset<900000000> path(0);

ll K , N;

void init(int n, int k)
{
    N=n;
    K=k;
    for(int i = 0 ; k>i ; i++)
        for(int j = i+1 ; k>j ; j++)
            path.set(j+i*N);
}

int add_teleporter(int u, int v)
{
    if(path.test(v+u*N)==1)
        return 0;
    path.set(v+u*N);
    for(int i = 0 ; N>i ; i++)
    {
        if(path.test(u+i*N)==1)
        {
            for(int j = 0 ; N>j ; j++)
            {
                if(path.test(j+v*N)==1)
                    path.set(j+i*N);
            }
        }
    }
    for(int i = 0 ; N>i ; i++)
        if(path.test(i+v*N)==1)
            path.set(i+u*N);
    for(int i = 0 ; N>i ; i++)
        if(path.test(u+i*N)==1)
            path.set(v+i*N);
    for(int i = 0 ; K>i ; i++)
    {
        if(path.test(i+i*N)==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...