#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#pragma GCC optimize("O3,unroll-loops")
#pragma GCC target("avx2,tune=native")
#define INLINE inline __attribute__((always_inline))
unsigned X=12345;int rand_(){return(X*=3)/2;}
int(*compar)(int,int);
void sort(int*aa,int l,int r)
{
while(l<r)
{
int i=l,j=l,k=r,t,p=aa[l+rand_()%(r-l)];
while(j<k)switch(compar(aa[j],p)){case 0:++j;break;case -1:t=aa[i],aa[i]=aa[j],aa[j]=t,++i,++j;break;case 1:t=aa[--k],aa[k]=aa[j],aa[j]=t;break;}
sort(aa,l,i),l=k;
}
}
#define N 50005
#define S 600
int n,m,e[100000][3],h[N],q,b[100000][3],delta[100000],stat[100000],rm,rizz[9000],sm,ask[9000],am;
int savemode=1,p[N],sve[9000][3],svtop;
int df(int x){return p[x]<0?x:df(p[x]);}
INLINE void dun(int u,int v){
if((u=df(u))==(v=df(v)))return;
if(-p[u]<-p[v]){int t=u;u=v;v=t;}
if(savemode)sve[svtop][0]=u,sve[svtop][1]=v,sve[svtop][2]=p[v],++svtop;
p[u]+=p[v],p[v]=u;
}
INLINE void drb(){int k=--svtop,u=sve[k][0],v=sve[k][1],pv=sve[k][2];p[u]-=(p[v]=pv);}
int compar_edge_dec(int i,int j){return e[i][2]>e[j][2]?-1:e[i][2]<e[j][2]?1:0;}
int compar_ask_dec(int i,int j){return b[i][2]<b[j][2]?1:b[i][2]>b[j][2]?-1:0;}
int compar_edge_dec2(int i,int j){return e[i][2]>e[j][2];}
int compar_ask_dec2(int i,int j){return b[i][2]>b[j][2];}
#include<algorithm>
int onrizz[100000],ans[100000];
int main()
{
scanf("%d%d",&n,&m);
for(int i=0;i<m;++i)scanf("%d%d%d",e[i],e[i]+1,e[i]+2);
scanf("%d",&q);
for(int i=0;i<q;++i){scanf("%d%d%d",b[i],b[i]+1,b[i]+2);if(b[i][0]==1)--b[i][1];}
for(int l=0;l*S<q;++l)
{
memset(p,-1,sizeof p);svtop=0;
for(int j=l*S;j<l*S+S&&j<q;++j)if(b[j][0]==1)++delta[b[j][1]];else ask[am++]=j;
for(int j=0;j<m;++j)if(!delta[j])stat[sm++]=j;else rizz[rm++]=j;
std::sort(stat,stat+sm,compar_edge_dec2); std::sort(ask,ask+am,compar_ask_dec2);
int ep=0;
for(int ii=0;ii<am;++ii)
{
int w=b[ask[ii]][2];
savemode=0;while(ep<sm&&e[stat[ep]][2]>=w)dun(e[stat[ep]][0],e[stat[ep]][1]),++ep;savemode=1;
int eee=svtop;
for(int j=ask[ii]-1;j>=l*S;--j)
{
if(b[j][0]==1&&!onrizz[b[j][1]])
{
if(b[j][2]>=w)dun(e[b[j][1]][0],e[b[j][1]][1]);
onrizz[b[j][1]]=1;
}
}
for(int jj=0;jj<rm;++jj)if(!onrizz[rizz[jj]]&&e[rizz[jj]][2]>=w)
dun(e[rizz[jj]][0],e[rizz[jj]][1]);
ans[ask[ii]]=-p[df(b[ask[ii]][1])];
while(svtop>eee)drb();
for(int j=ask[ii]-1;j>=l*S;--j) onrizz[b[j][1]]=0;
}
sm=rm=am=0;
for(int j=l*S;j<l*S+S&&j<q;++j)if(b[j][0]==1)--delta[b[j][1]],e[b[j][1]][2]=b[j][2];
}
for(int i=0;i<q;++i)if(b[i][0]==2)printf("%d\n",ans[i]);
}
Compilation message
bridges.cpp: In function 'int main()':
bridges.cpp:46:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
46 | scanf("%d%d",&n,&m);
| ~~~~~^~~~~~~~~~~~~~
bridges.cpp:47:30: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
47 | for(int i=0;i<m;++i)scanf("%d%d%d",e[i],e[i]+1,e[i]+2);
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bridges.cpp:48:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
48 | scanf("%d",&q);
| ~~~~~^~~~~~~~~
bridges.cpp:49:31: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
49 | for(int i=0;i<q;++i){scanf("%d%d%d",b[i],b[i]+1,b[i]+2);if(b[i][0]==1)--b[i][1];}
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
2648 KB |
Output is correct |
2 |
Correct |
1 ms |
2652 KB |
Output is correct |
3 |
Correct |
16 ms |
2716 KB |
Output is correct |
4 |
Correct |
7 ms |
2648 KB |
Output is correct |
5 |
Correct |
16 ms |
2648 KB |
Output is correct |
6 |
Correct |
12 ms |
2652 KB |
Output is correct |
7 |
Correct |
12 ms |
2648 KB |
Output is correct |
8 |
Correct |
13 ms |
2656 KB |
Output is correct |
9 |
Correct |
11 ms |
2652 KB |
Output is correct |
10 |
Correct |
13 ms |
2652 KB |
Output is correct |
11 |
Correct |
12 ms |
2648 KB |
Output is correct |
12 |
Correct |
13 ms |
2660 KB |
Output is correct |
13 |
Correct |
20 ms |
2652 KB |
Output is correct |
14 |
Correct |
15 ms |
2652 KB |
Output is correct |
15 |
Correct |
14 ms |
2652 KB |
Output is correct |
16 |
Correct |
15 ms |
2648 KB |
Output is correct |
17 |
Correct |
12 ms |
2708 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1035 ms |
3988 KB |
Output is correct |
2 |
Correct |
1112 ms |
3952 KB |
Output is correct |
3 |
Correct |
1087 ms |
4132 KB |
Output is correct |
4 |
Correct |
1079 ms |
3776 KB |
Output is correct |
5 |
Correct |
1069 ms |
4056 KB |
Output is correct |
6 |
Correct |
1219 ms |
4304 KB |
Output is correct |
7 |
Correct |
1275 ms |
4064 KB |
Output is correct |
8 |
Correct |
1178 ms |
4196 KB |
Output is correct |
9 |
Correct |
61 ms |
3156 KB |
Output is correct |
10 |
Correct |
491 ms |
4056 KB |
Output is correct |
11 |
Correct |
498 ms |
3920 KB |
Output is correct |
12 |
Correct |
978 ms |
4088 KB |
Output is correct |
13 |
Correct |
1002 ms |
3932 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
716 ms |
4276 KB |
Output is correct |
2 |
Correct |
312 ms |
3336 KB |
Output is correct |
3 |
Correct |
746 ms |
3920 KB |
Output is correct |
4 |
Correct |
734 ms |
3588 KB |
Output is correct |
5 |
Correct |
59 ms |
3160 KB |
Output is correct |
6 |
Correct |
717 ms |
3540 KB |
Output is correct |
7 |
Correct |
684 ms |
3748 KB |
Output is correct |
8 |
Correct |
667 ms |
3452 KB |
Output is correct |
9 |
Correct |
603 ms |
3664 KB |
Output is correct |
10 |
Correct |
605 ms |
3668 KB |
Output is correct |
11 |
Correct |
639 ms |
3560 KB |
Output is correct |
12 |
Correct |
585 ms |
3720 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2060 ms |
4740 KB |
Output is correct |
2 |
Correct |
58 ms |
3232 KB |
Output is correct |
3 |
Correct |
207 ms |
3740 KB |
Output is correct |
4 |
Correct |
82 ms |
3876 KB |
Output is correct |
5 |
Correct |
903 ms |
5324 KB |
Output is correct |
6 |
Correct |
1949 ms |
4648 KB |
Output is correct |
7 |
Correct |
886 ms |
4792 KB |
Output is correct |
8 |
Correct |
882 ms |
4180 KB |
Output is correct |
9 |
Correct |
894 ms |
4292 KB |
Output is correct |
10 |
Correct |
931 ms |
4180 KB |
Output is correct |
11 |
Correct |
1435 ms |
4380 KB |
Output is correct |
12 |
Correct |
1400 ms |
4216 KB |
Output is correct |
13 |
Correct |
1473 ms |
4800 KB |
Output is correct |
14 |
Correct |
790 ms |
5200 KB |
Output is correct |
15 |
Correct |
831 ms |
4856 KB |
Output is correct |
16 |
Correct |
1986 ms |
4912 KB |
Output is correct |
17 |
Correct |
2005 ms |
4676 KB |
Output is correct |
18 |
Correct |
1972 ms |
4848 KB |
Output is correct |
19 |
Correct |
2005 ms |
4968 KB |
Output is correct |
20 |
Correct |
1665 ms |
4964 KB |
Output is correct |
21 |
Correct |
1636 ms |
4648 KB |
Output is correct |
22 |
Correct |
1911 ms |
4772 KB |
Output is correct |
23 |
Correct |
1032 ms |
4708 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1035 ms |
3988 KB |
Output is correct |
2 |
Correct |
1112 ms |
3952 KB |
Output is correct |
3 |
Correct |
1087 ms |
4132 KB |
Output is correct |
4 |
Correct |
1079 ms |
3776 KB |
Output is correct |
5 |
Correct |
1069 ms |
4056 KB |
Output is correct |
6 |
Correct |
1219 ms |
4304 KB |
Output is correct |
7 |
Correct |
1275 ms |
4064 KB |
Output is correct |
8 |
Correct |
1178 ms |
4196 KB |
Output is correct |
9 |
Correct |
61 ms |
3156 KB |
Output is correct |
10 |
Correct |
491 ms |
4056 KB |
Output is correct |
11 |
Correct |
498 ms |
3920 KB |
Output is correct |
12 |
Correct |
978 ms |
4088 KB |
Output is correct |
13 |
Correct |
1002 ms |
3932 KB |
Output is correct |
14 |
Correct |
716 ms |
4276 KB |
Output is correct |
15 |
Correct |
312 ms |
3336 KB |
Output is correct |
16 |
Correct |
746 ms |
3920 KB |
Output is correct |
17 |
Correct |
734 ms |
3588 KB |
Output is correct |
18 |
Correct |
59 ms |
3160 KB |
Output is correct |
19 |
Correct |
717 ms |
3540 KB |
Output is correct |
20 |
Correct |
684 ms |
3748 KB |
Output is correct |
21 |
Correct |
667 ms |
3452 KB |
Output is correct |
22 |
Correct |
603 ms |
3664 KB |
Output is correct |
23 |
Correct |
605 ms |
3668 KB |
Output is correct |
24 |
Correct |
639 ms |
3560 KB |
Output is correct |
25 |
Correct |
585 ms |
3720 KB |
Output is correct |
26 |
Correct |
1031 ms |
3840 KB |
Output is correct |
27 |
Correct |
1119 ms |
4048 KB |
Output is correct |
28 |
Correct |
1084 ms |
3944 KB |
Output is correct |
29 |
Correct |
989 ms |
3904 KB |
Output is correct |
30 |
Correct |
1120 ms |
3788 KB |
Output is correct |
31 |
Correct |
1121 ms |
4088 KB |
Output is correct |
32 |
Correct |
1124 ms |
3816 KB |
Output is correct |
33 |
Correct |
1084 ms |
3972 KB |
Output is correct |
34 |
Correct |
1096 ms |
3828 KB |
Output is correct |
35 |
Correct |
1070 ms |
3844 KB |
Output is correct |
36 |
Correct |
1018 ms |
4068 KB |
Output is correct |
37 |
Correct |
995 ms |
4040 KB |
Output is correct |
38 |
Correct |
999 ms |
3864 KB |
Output is correct |
39 |
Correct |
1075 ms |
3968 KB |
Output is correct |
40 |
Correct |
933 ms |
3988 KB |
Output is correct |
41 |
Correct |
947 ms |
3928 KB |
Output is correct |
42 |
Correct |
866 ms |
3820 KB |
Output is correct |
43 |
Correct |
905 ms |
3740 KB |
Output is correct |
44 |
Correct |
865 ms |
3804 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
2648 KB |
Output is correct |
2 |
Correct |
1 ms |
2652 KB |
Output is correct |
3 |
Correct |
16 ms |
2716 KB |
Output is correct |
4 |
Correct |
7 ms |
2648 KB |
Output is correct |
5 |
Correct |
16 ms |
2648 KB |
Output is correct |
6 |
Correct |
12 ms |
2652 KB |
Output is correct |
7 |
Correct |
12 ms |
2648 KB |
Output is correct |
8 |
Correct |
13 ms |
2656 KB |
Output is correct |
9 |
Correct |
11 ms |
2652 KB |
Output is correct |
10 |
Correct |
13 ms |
2652 KB |
Output is correct |
11 |
Correct |
12 ms |
2648 KB |
Output is correct |
12 |
Correct |
13 ms |
2660 KB |
Output is correct |
13 |
Correct |
20 ms |
2652 KB |
Output is correct |
14 |
Correct |
15 ms |
2652 KB |
Output is correct |
15 |
Correct |
14 ms |
2652 KB |
Output is correct |
16 |
Correct |
15 ms |
2648 KB |
Output is correct |
17 |
Correct |
12 ms |
2708 KB |
Output is correct |
18 |
Correct |
1035 ms |
3988 KB |
Output is correct |
19 |
Correct |
1112 ms |
3952 KB |
Output is correct |
20 |
Correct |
1087 ms |
4132 KB |
Output is correct |
21 |
Correct |
1079 ms |
3776 KB |
Output is correct |
22 |
Correct |
1069 ms |
4056 KB |
Output is correct |
23 |
Correct |
1219 ms |
4304 KB |
Output is correct |
24 |
Correct |
1275 ms |
4064 KB |
Output is correct |
25 |
Correct |
1178 ms |
4196 KB |
Output is correct |
26 |
Correct |
61 ms |
3156 KB |
Output is correct |
27 |
Correct |
491 ms |
4056 KB |
Output is correct |
28 |
Correct |
498 ms |
3920 KB |
Output is correct |
29 |
Correct |
978 ms |
4088 KB |
Output is correct |
30 |
Correct |
1002 ms |
3932 KB |
Output is correct |
31 |
Correct |
716 ms |
4276 KB |
Output is correct |
32 |
Correct |
312 ms |
3336 KB |
Output is correct |
33 |
Correct |
746 ms |
3920 KB |
Output is correct |
34 |
Correct |
734 ms |
3588 KB |
Output is correct |
35 |
Correct |
59 ms |
3160 KB |
Output is correct |
36 |
Correct |
717 ms |
3540 KB |
Output is correct |
37 |
Correct |
684 ms |
3748 KB |
Output is correct |
38 |
Correct |
667 ms |
3452 KB |
Output is correct |
39 |
Correct |
603 ms |
3664 KB |
Output is correct |
40 |
Correct |
605 ms |
3668 KB |
Output is correct |
41 |
Correct |
639 ms |
3560 KB |
Output is correct |
42 |
Correct |
585 ms |
3720 KB |
Output is correct |
43 |
Correct |
2060 ms |
4740 KB |
Output is correct |
44 |
Correct |
58 ms |
3232 KB |
Output is correct |
45 |
Correct |
207 ms |
3740 KB |
Output is correct |
46 |
Correct |
82 ms |
3876 KB |
Output is correct |
47 |
Correct |
903 ms |
5324 KB |
Output is correct |
48 |
Correct |
1949 ms |
4648 KB |
Output is correct |
49 |
Correct |
886 ms |
4792 KB |
Output is correct |
50 |
Correct |
882 ms |
4180 KB |
Output is correct |
51 |
Correct |
894 ms |
4292 KB |
Output is correct |
52 |
Correct |
931 ms |
4180 KB |
Output is correct |
53 |
Correct |
1435 ms |
4380 KB |
Output is correct |
54 |
Correct |
1400 ms |
4216 KB |
Output is correct |
55 |
Correct |
1473 ms |
4800 KB |
Output is correct |
56 |
Correct |
790 ms |
5200 KB |
Output is correct |
57 |
Correct |
831 ms |
4856 KB |
Output is correct |
58 |
Correct |
1986 ms |
4912 KB |
Output is correct |
59 |
Correct |
2005 ms |
4676 KB |
Output is correct |
60 |
Correct |
1972 ms |
4848 KB |
Output is correct |
61 |
Correct |
2005 ms |
4968 KB |
Output is correct |
62 |
Correct |
1665 ms |
4964 KB |
Output is correct |
63 |
Correct |
1636 ms |
4648 KB |
Output is correct |
64 |
Correct |
1911 ms |
4772 KB |
Output is correct |
65 |
Correct |
1032 ms |
4708 KB |
Output is correct |
66 |
Correct |
1031 ms |
3840 KB |
Output is correct |
67 |
Correct |
1119 ms |
4048 KB |
Output is correct |
68 |
Correct |
1084 ms |
3944 KB |
Output is correct |
69 |
Correct |
989 ms |
3904 KB |
Output is correct |
70 |
Correct |
1120 ms |
3788 KB |
Output is correct |
71 |
Correct |
1121 ms |
4088 KB |
Output is correct |
72 |
Correct |
1124 ms |
3816 KB |
Output is correct |
73 |
Correct |
1084 ms |
3972 KB |
Output is correct |
74 |
Correct |
1096 ms |
3828 KB |
Output is correct |
75 |
Correct |
1070 ms |
3844 KB |
Output is correct |
76 |
Correct |
1018 ms |
4068 KB |
Output is correct |
77 |
Correct |
995 ms |
4040 KB |
Output is correct |
78 |
Correct |
999 ms |
3864 KB |
Output is correct |
79 |
Correct |
1075 ms |
3968 KB |
Output is correct |
80 |
Correct |
933 ms |
3988 KB |
Output is correct |
81 |
Correct |
947 ms |
3928 KB |
Output is correct |
82 |
Correct |
866 ms |
3820 KB |
Output is correct |
83 |
Correct |
905 ms |
3740 KB |
Output is correct |
84 |
Correct |
865 ms |
3804 KB |
Output is correct |
85 |
Correct |
2257 ms |
4800 KB |
Output is correct |
86 |
Correct |
223 ms |
4208 KB |
Output is correct |
87 |
Correct |
117 ms |
4180 KB |
Output is correct |
88 |
Correct |
1059 ms |
5076 KB |
Output is correct |
89 |
Correct |
2208 ms |
4908 KB |
Output is correct |
90 |
Correct |
1084 ms |
4512 KB |
Output is correct |
91 |
Correct |
1103 ms |
4304 KB |
Output is correct |
92 |
Correct |
1086 ms |
3880 KB |
Output is correct |
93 |
Correct |
1253 ms |
4088 KB |
Output is correct |
94 |
Correct |
1716 ms |
4364 KB |
Output is correct |
95 |
Correct |
1698 ms |
4180 KB |
Output is correct |
96 |
Correct |
1696 ms |
4348 KB |
Output is correct |
97 |
Correct |
1002 ms |
4812 KB |
Output is correct |
98 |
Correct |
969 ms |
4864 KB |
Output is correct |
99 |
Correct |
2223 ms |
4752 KB |
Output is correct |
100 |
Correct |
2254 ms |
4820 KB |
Output is correct |
101 |
Correct |
2277 ms |
4896 KB |
Output is correct |
102 |
Correct |
2229 ms |
4804 KB |
Output is correct |
103 |
Correct |
1908 ms |
4552 KB |
Output is correct |
104 |
Correct |
1885 ms |
4492 KB |
Output is correct |
105 |
Correct |
1791 ms |
4440 KB |
Output is correct |
106 |
Correct |
1613 ms |
4372 KB |
Output is correct |
107 |
Correct |
1753 ms |
4948 KB |
Output is correct |
108 |
Correct |
2127 ms |
4852 KB |
Output is correct |
109 |
Correct |
1206 ms |
4416 KB |
Output is correct |