# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1248409 | FIFI_cpp | Game (IOI14_game) | C++20 | 0 ms | 0 KiB |
#include <bits/stdc++.h>
#include <iostream>
#include <vector>
#include <algorithm>
#include <numeric>
#include <cstdlib>
#include <cmath>
#include <queue>
#include <stack>
#include <deque>
#include <fstream>
#include <iterator>
#include <set>
#include <map>
#include <unordered_map>
#include <iomanip>
#include <cctype>
#include <string>
#include <cassert>
#include <set>
#include <bitset>
#include <unordered_set>
#include <numeric>
#define all(a) a.begin(), a.end()
#define fast ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
#define pb push_back
#define ppi pair<int,pair<int,int>>
#define int int64_t
using namespace std;
// /\_/\
// (= ._.)
// / > \>
// encouraging cat
const int INF = 10000000000000000;
//const int mod = 1000000007;
const int mod = 998244353;
const int MAXN = 200005;
//ifstream fin('xor.in');
//ofstream fout('xor.out');
vector<vector<bool>> adj;
vector<bool> visited;
int n = 0;
void dfs(int x)
{
for (int i = 0;i < n;i++)
{
if (i == x || visited[i])
{
continue;
}
visited[i] = true;
dfs(i);
}
}
bool ok()
{
visited.clear();
visited.resize(n,false);
visited[0] = true;
dfs(0);
for (int i = 0;i < n;i++)
{
if (visited[i] == false)
{
return false;
}
}
return true;
}
void initialize(int N)
{
n = N;
adj.resize(N, vector<bool> (N,true));
}
int hasEdge(int u,int v)
{
adj[u][v] = false;
adj[v][u] = false;
if (ok)
{
return 0;
}
adj[u][v] = true;
adj[v][u] = true;
return 1;
}