QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#568183 | #9310. Permutation Counting 4 | Monika | RE | 0ms | 0kb | C++17 | 1.4kb | 2024-09-16 15:30:29 | 2024-09-16 15:30:32 |
Judging History
answer
#pragma GCC optimize(1)
#pragma GCC optimize(2)
#pragma GCC optimize(3,"Ofast","inline")
#include <bits/stdc++.h>
#define min(a,b) (a > b ? b : a)
#define max(a,b) (a < b ? b : a)
#define YES (cout << "YES" << endl)
#define NO (cout << "NO" << endl)
#define all(x) (x).begin(), (x).end()
#define endl '\n'
#define mem(a,b) memset(a,b,sizeof(a))
#define rrep(a, b, c) for (a = b; a >= c; a--)
#define rep(a, b, c) for (a = b; a <= c; a++)
#define lowbit(a) (a & (-a))
#define int long long
#define IOS ios::sync_with_stdio(0); cout.tie(0);
using namespace std;
typedef double db;
typedef pair<int,int> pii;
typedef array <int,3> a3;
const db eps = 1e-7;
const int inf = 0x3f3f3f3f3f3f3f3f;
const int N = 1e6 + 10;
int n;
int p[N];
int find(int x){
if (p[x] != x) p[x] = find(p[x]);
return p[x];
}
void merge(int a,int b){
a = find(a);
b = find(b);
if (a != b){
p[a] = b;
}
}
void solve(){
cin >> n;
int i;
rep(i,1,n + 1){
p[i] = i;
}
rep(i,1,n){
int x,y;
cin >> x >> y;
merge(x, y + 1);
}
int pos = find(1);
rep(i,1,n + 1){
if (find(i) != pos){
cout << 0 << endl;
return;
}
}
cout << 1 << endl;
}
signed main(){
cin.tie(0);
int T = 1;
cin >> T;
while (T --){
solve();
}
system("pause");
}
詳細信息
Test #1:
score: 0
Dangerous Syscalls
input:
4 5 1 2 1 5 1 2 1 2 2 2 5 1 1 2 4 2 3 5 5 3 4 5 3 5 1 2 3 4 3 5 3 3 5 1 5 1 4 4 5 5 5 1 2