This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
int q[10003];
int con[10003];
int N;
void initialize(int n){
N=n-1;
}
/*
The key idea is simple: Build a tree and that's it. Find a way to build a tree so that, up until the
penultimate query, is not yet a tree.
Could be done in many ways: the DSU that only connects the final edges between 2 components, the kind of thing
mentioned in the editorial, or.......find a way to seperate all kinds of edges into N-1 non-intersecting sets,
then answering YES to the final edge that belongs to each individual set.
Instead of following the big-brain thing of the editorial........any method of seperating the edges into N-1
non-intersecting sets, where only the final edge that belongs to each set is added, and no cycles are formed
would do.
....okay, the kind of partitioning in the editorial is pretty smart, still thinking of a more original, hyper
clownery way
cant
*/
int hasEdge(int u, int v){
if(v>u){
swap(u,v);
}
q[u]++;
return (q[u]==N);
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |