Submission #101856
Source Code Expand
#include <cstdio>
int rt(int uf[100000],int a)
{
return uf[a]<0?a:uf[a]=rt(uf,uf[a]);
}
void con(int uf[100000],int a,int b)
{
a=rt(uf,a);
b=rt(uf,b);
if(a!=b){
if(-uf[a]<-uf[b]){
uf[a]=b;
}
else if(-uf[a]>-uf[b]){
uf[b]=a;
}
else{
uf[a]=b;
uf[b]--;
}
}
}
bool ask(int uf[100000],int a,int b)
{
a=rt(uf,a);
b=rt(uf,b);
//printf("%d %d\n",a,b);
return a==b;
}
int main()
{
int n,m,k;
scanf("%d%d%d",&n,&m,&k);
static int a[100000],b[100000];
static bool B[100000]={0};
for(int i=0;i<m;i++){
scanf("%d %d",a+i,b+i);
a[i]--;
b[i]--;
}
static int v[100000],e[100000],w[100000];
for(int i=0;i<k;i++){
scanf("%d",v+i);
if(v[i]==0){
scanf("%d",e+i);
e[i]--;
B[e[i]]=1;
}
else{
scanf("%d%d",e+i,w+i);
e[i]--;
w[i]--;
}
}
static int uf[100000];
for(int i=0;i<n;i++){
uf[i]=-1;
}
for(int i=0;i<m;i++){
if(!B[i]){
con(uf,a[i],b[i]);
}
}
//return 0;
static bool K[100000];
int p=0;
for(int i=k-1;i>=0;i--){
//printf("%d\n",v[i]);
if(v[i]==0){
int E=e[i],A=a[E],B=b[E];
//printf("%d %d\n",A,B);
con(uf,A,B);
}
else{
int V=e[i],W=w[i];
//printf("%d %d\n",V,W);
K[p]=ask(uf,V,W);
p++;
}
}
for(int i=p-1;i>=0;i--){
printf("%s\n",K[i]?"YES":"NO");
}
return 0;
}
Submission Info
Submission Time
2013-09-21 11:00:44+0900
Task
D - Graph Destruction
User
phidnight
Language
C++ (GCC 4.4.7)
Score
100
Code Size
1361 Byte
Status
AC
Exec Time
114 ms
Memory
3492 KB
Compile Error
./Main.cpp: In function ‘int main()’:
./Main.cpp:38: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result
./Main.cpp:42: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result
./Main.cpp:48: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result
./Main.cpp:50: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result
./Main.cpp:55: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result
Judge Result
Set Name
All
Score / Max Score
100 / 100
Status
Set Name
Test Cases
All
1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 3, 30, 31, 32, 33, 34, 35, 36, 4, 5, 50, 6, 7, 8, 9
Case Name
Status
Exec Time
Memory
1
AC
21 ms
932 KB
10
AC
20 ms
928 KB
11
AC
28 ms
928 KB
12
AC
42 ms
1440 KB
13
AC
63 ms
2076 KB
14
AC
83 ms
2524 KB
15
AC
99 ms
2992 KB
16
AC
114 ms
3492 KB
17
AC
45 ms
1572 KB
18
AC
43 ms
1636 KB
19
AC
52 ms
1692 KB
2
AC
20 ms
796 KB
20
AC
68 ms
2028 KB
21
AC
52 ms
1700 KB
22
AC
65 ms
2084 KB
23
AC
55 ms
1632 KB
24
AC
41 ms
1380 KB
25
AC
44 ms
1452 KB
26
AC
88 ms
2784 KB
27
AC
39 ms
1312 KB
28
AC
41 ms
1440 KB
29
AC
72 ms
2208 KB
3
AC
20 ms
924 KB
30
AC
57 ms
1832 KB
31
AC
83 ms
2596 KB
32
AC
70 ms
2216 KB
33
AC
76 ms
2344 KB
34
AC
91 ms
2724 KB
35
AC
80 ms
2536 KB
36
AC
48 ms
1504 KB
4
AC
21 ms
928 KB
5
AC
20 ms
800 KB
50
AC
85 ms
2656 KB
6
AC
21 ms
804 KB
7
AC
20 ms
932 KB
8
AC
22 ms
808 KB
9
AC
23 ms
936 KB