Submission #2682

# Submission time Handle Problem Language Result Execution time Memory
2682 2013-07-30T15:03:33 Z gs13068 간선 파괴 (GA5_destroy) C++
100 / 100
1996 ms 10420 KB
#include<cstdio>
#include<vector>

#define BUCKET_SIZE 8

int s[200000];
int e[200000];

struct edge
{
int s;
int e;
} temp;

std::vector<edge> pre[800];
std::vector<edge> suf[800];
int parent[1000];
int height[1000];

inline int root(int x)
{
return parent[x]==x?x:parent[x]=root(parent[x]);
}

inline void combine(int a,int b)
{
a=root(a);
b=root(b);
if(a==b)return;
if(height[a]<height[b])parent[a]=b;
else parent[b]=a;
if(height[a]==height[b])height[b]++;
}

int main()
{
int i,j,k,n,m,l,r,q;
scanf("%d%d",&n,&m);
for(i=0;i<m;i++)
{
scanf("%d%d",&s[i],&e[i]);
s[i]--;e[i]--;
}
for(i=0;i<n;i++)
{
parent[i]=i;
height[i]=0;
}
for(i=0;i<m;i++)
{
combine(s[i],e[i]);
if((i&((1<<BUCKET_SIZE)-1))==(1<<BUCKET_SIZE)-1)
{
for(j=0;j<n;j++)if(parent[j]!=j)
{
temp.s=j;
temp.e=parent[j];
pre[i>>BUCKET_SIZE].push_back(temp);
}
}
}
for(i=0;i<n;i++)
{
parent[i]=i;
height[i]=0;
}
for(i=m-1;i>=0;i--)
{
combine(s[i],e[i]);
if(!(i&((1<<BUCKET_SIZE)-1)))
{
for(j=0;j<n;j++)if(parent[j]!=j)
{
temp.s=j;
temp.e=parent[j];
suf[i>>BUCKET_SIZE].push_back(temp);
}
}
}
scanf("%d",&q);
for(i=0;i<q;i++)
{
scanf("%d%d",&l,&r);
l--;r--;
for(j=0;j<n;j++)
{
parent[j]=j;
height[j]=0;
}
j=(l>>BUCKET_SIZE)-1;
if(j>=0)for(k=0;k<pre[j].size();k++)combine(pre[j][k].s,pre[j][k].e);
for(k=(l>>BUCKET_SIZE)<<BUCKET_SIZE;k<l;k++)combine(s[k],e[k]);
j=(r>>BUCKET_SIZE)+1;
for(k=0;k<suf[j].size();k++)combine(suf[j][k].s,suf[j][k].e);
for(k=r+1;k<((r>>BUCKET_SIZE)+1)<<BUCKET_SIZE;k++)combine(s[k],e[k]);
k=0;
for(j=0;j<n;j++)if(parent[j]==j)k++;
printf("%d\n",k);
}
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 2816 KB Output is correct
2 Correct 0 ms 2816 KB Output is correct
3 Correct 0 ms 2816 KB Output is correct
4 Correct 0 ms 2816 KB Output is correct
5 Correct 0 ms 2816 KB Output is correct
6 Correct 0 ms 2816 KB Output is correct
7 Correct 0 ms 2816 KB Output is correct
8 Correct 0 ms 2816 KB Output is correct
9 Correct 0 ms 2816 KB Output is correct
10 Correct 0 ms 2816 KB Output is correct
11 Correct 0 ms 2816 KB Output is correct
12 Correct 0 ms 2816 KB Output is correct
13 Correct 0 ms 2816 KB Output is correct
14 Correct 0 ms 2816 KB Output is correct
15 Correct 0 ms 2816 KB Output is correct
16 Correct 0 ms 2816 KB Output is correct
17 Correct 0 ms 2816 KB Output is correct
18 Correct 0 ms 2816 KB Output is correct
19 Correct 0 ms 2816 KB Output is correct
20 Correct 0 ms 2816 KB Output is correct
21 Correct 0 ms 2816 KB Output is correct
22 Correct 0 ms 2816 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 44 ms 3212 KB Output is correct
2 Correct 44 ms 3212 KB Output is correct
3 Correct 44 ms 3212 KB Output is correct
4 Correct 52 ms 4268 KB Output is correct
5 Correct 44 ms 4268 KB Output is correct
6 Correct 388 ms 4268 KB Output is correct
7 Correct 396 ms 4136 KB Output is correct
8 Correct 392 ms 4136 KB Output is correct
9 Correct 56 ms 2816 KB Output is correct
10 Correct 56 ms 2816 KB Output is correct
11 Correct 52 ms 2816 KB Output is correct
12 Correct 52 ms 4268 KB Output is correct
13 Correct 52 ms 4268 KB Output is correct
14 Correct 44 ms 4268 KB Output is correct
15 Correct 40 ms 2816 KB Output is correct
16 Correct 48 ms 2816 KB Output is correct
17 Correct 12 ms 2816 KB Output is correct
18 Correct 8 ms 2816 KB Output is correct
19 Correct 0 ms 2816 KB Output is correct
20 Correct 4 ms 2816 KB Output is correct
21 Correct 0 ms 2816 KB Output is correct
22 Correct 4 ms 2816 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1332 ms 5940 KB Output is correct
2 Correct 1356 ms 5804 KB Output is correct
3 Correct 1324 ms 10420 KB Output is correct
4 Correct 1404 ms 5940 KB Output is correct
5 Correct 1504 ms 4584 KB Output is correct
6 Correct 1276 ms 10420 KB Output is correct
7 Correct 1372 ms 4448 KB Output is correct
8 Correct 1460 ms 4584 KB Output is correct
9 Correct 1996 ms 2952 KB Output is correct
10 Correct 1988 ms 2952 KB Output is correct
11 Correct 1404 ms 4448 KB Output is correct
12 Correct 1288 ms 10420 KB Output is correct
13 Correct 1268 ms 7160 KB Output is correct
14 Correct 1288 ms 7160 KB Output is correct
15 Correct 1632 ms 2816 KB Output is correct
16 Correct 1452 ms 2816 KB Output is correct
17 Correct 536 ms 2816 KB Output is correct
18 Correct 476 ms 2816 KB Output is correct
19 Correct 140 ms 2816 KB Output is correct
20 Correct 168 ms 2816 KB Output is correct
21 Correct 112 ms 2816 KB Output is correct
22 Correct 116 ms 2816 KB Output is correct