#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 (adj[i][x] == false)
{
continue;
}
if (i == x || visited[i])
{
continue;
}
visited[i] = true;
dfs(i);
}
}
bool check()
{
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 (check())
{
return 0;
}
adj[u][v] = true;
adj[v][u] = true;
return 1;
}
Compilation message (stderr)
game.cpp:36:17: warning: overflow in conversion from 'long int' to 'int' changes value from '10000000000000000' to '1874919424' [-Woverflow]
36 | const int INF = 10000000000000000;
| ^~~~~~~~~~~~~~~~~
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |