#include <bits/stdc++.h>
using namespace std;
typedef long long llo;
#define mp make_pair
#define pb push_back
#define a first
#define b second
vector<pair<pair<int,int>,pair<int,int>>> ed;
vector<pair<pair<int,int>,pair<int,int>>> ed2;
vector<pair<pair<int,int>,pair<int,int>>> ed3;
vector<pair<pair<int,int>,pair<int,int>>> ed4;
int n,m,q;
vector<pair<int,pair<int,int>>> qq;
const int ss=600;
vector<int> kk;
vector<int> mm;
int vis[100001];
int par[50001];
int tt[50001];
int find(int no){
if(par[no]==no){
return no;
}
par[no]=find(par[no]);
return par[no];
}
int ans[100001];
int vis2[100001];
vector<int> adj[50001];
int val[100001];
int vis3[100001];
int cot=0;
void dfs(int no){
vis3[no]=1;
cot+=tt[no];
for(auto j:adj[no]){
if(vis3[j]==0){
dfs(j);
}
}
}
int vis4[100001];
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cin>>n>>m;
for(int i=0;i<m;i++){
int aa,bb,cc;
cin>>aa>>bb>>cc;
aa--;
bb--;
ed2.pb({{cc,i},{aa,bb}});
val[i]=cc;
}
/*sort(cc.begin(),cc.end());
reverse(cc.begin(),cc.end());*/
cin>>q;
for(int i=0;i<q;i++){
int t;
cin>>t;
int aa,bb;
cin>>aa>>bb;
aa--;
qq.pb({t,{aa,bb}});
}
ed=ed2;
sort(ed.begin(),ed.end());
reverse(ed.begin(),ed.end());
set<int> rep;
for(int i=0;i<=(q-1)/ss;i++){
//cout<<i<<":::"<<endl;
vector<pair<pair<int,int>,int>> cur;
for(auto j:rep){
vis4[j]=1;
ed3.pb({{val[j],j},ed2[j].b});
}
sort(ed3.begin(),ed3.end());
reverse(ed3.begin(),ed3.end());
int ind3=0;
int ind4=0;
while(ind3<ed3.size() or ind4<ed.size()){
int st=1;
if(ind3==ed3.size()){
st=0;
}
else if(ind4==ed.size()){
}
else{
if(ed[ind4].a.a>=ed3[ind3].a.a){
st=0;
}
}
if(st){
ed4.pb(ed3[ind3]);
ind3++;
}
else{
if(vis4[ed[ind4].a.b]==0){
ed4.pb(ed[ind4]);
}
ind4++;
}
}
ed3.clear();
for(auto j:rep){
vis4[j]=0;
}
ed=ed4;
ed4.clear();
/*ed.clear();*/
/*for(int j=0;j<m;j++){
ed.pb({{val[ed2[j].a.b],ed2[j].a.b},ed2[j].b});
}*/
/*sort(ed.begin(),ed.end());
reverse(ed.begin(),ed.end());
*/
for(int j=ss*i;j<min(ss*(i+1),q);j++){
if(qq[j].a==1){
vis[qq[j].b.a]=1;
kk.pb(qq[j].b.a);
// cout<<qq[j].b.a<<endl;
}
else{
cur.pb({{qq[j].b.b,qq[j].b.a},j});
}
}
sort(cur.begin(),cur.end());
reverse(cur.begin(),cur.end());
for(int j=0;j<n;j++){
par[j]=j;
tt[j]=1;
}
int ind=0;
int ind2=0;
while(ind<cur.size() or ind2<ed.size()){
int st=1;//1 denotes take cur
if(ind==cur.size()){
st=0;
}
else if(ind2==ed.size()){
}
else{
if(ed[ind2].a.a>=cur[ind].a.a){
st=0;
}
}
if(st){
//take cur
vector<int> nn;
for(int j=cur[ind].b;j>=ss*i;j--){
if(qq[j].a==1){
if(vis2[qq[j].b.a]==0){
mm.pb(qq[j].b.a);
vis2[qq[j].b.a]=1;
if(qq[j].b.b>=cur[ind].a.a){
int x=find(ed2[qq[j].b.a].b.a);
int y=find(ed2[qq[j].b.a].b.b);
adj[x].pb(y);
adj[y].pb(x);
nn.pb(x);
nn.pb(y);
}
}
}
}
for(int j=cur[ind].b;j<min(ss*(i+1),q);j++){
if(qq[j].a==1){
if(vis2[qq[j].b.a]==0){
mm.pb(qq[j].b.a);
vis2[qq[j].b.a]=1;
if(val[qq[j].b.a]>=cur[ind].a.a){
int x=find(ed2[qq[j].b.a].b.a);
int y=find(ed2[qq[j].b.a].b.b);
adj[x].pb(y);
adj[y].pb(x);
// cout<<x<<"//"<<y<<endl;
nn.pb(x);
nn.pb(y);
}
}
}
}
int xx=find(cur[ind].a.b);
// cout<<xx<<endl;
cot=0;
// cout<<cur[ind].b<<"/"<<endl;
dfs(xx);
ans[cur[ind].b]=cot;
for(auto j:nn){
vis3[j]=0;
adj[j].clear();
}
vis3[xx]=0;
for(auto j:mm){
vis2[j]=0;
}
nn.clear();
mm.clear();
ind++;
}
else{
//add edge
/// cout<<1<<":"<<ed[ind2].a.a<<","<<ed[ind2].a.b<<","<<ed[ind2].b.a<<","<<ed[ind2].b.b<<endl;
if(vis[ed[ind2].a.b]){
}
else{
int x=find(ed[ind2].b.a);
int y=find(ed[ind2].b.b);
// cout<<ed[ind2].b.b<<":"<<ed[ind2].b.a<<endl;
if(x!=y){
par[y]=x;
tt[x]+=tt[y];
}
}
ind2++;
}
}
for(auto j:kk){
vis[j]=0;
}
kk.clear();
rep.clear();
for(int j=ss*i;j<min(ss*(i+1),q);j++){
if(qq[j].a==1){
val[qq[j].b.a]=qq[j].b.b;
rep.insert(qq[j].b.a);
}
}
}
for(int i=0;i<q;i++){
if(qq[i].a==2){
cout<<ans[i]<<endl;
}
}
return 0;
}
Compilation message
bridges.cpp: In function 'int main()':
bridges.cpp:83:13: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
while(ind3<ed3.size() or ind4<ed.size()){
~~~~^~~~~~~~~~~
bridges.cpp:83:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
while(ind3<ed3.size() or ind4<ed.size()){
~~~~^~~~~~~~~~
bridges.cpp:85:11: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if(ind3==ed3.size()){
~~~~^~~~~~~~~~~~
bridges.cpp:88:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
else if(ind4==ed.size()){
~~~~^~~~~~~~~~~
bridges.cpp:142:12: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
while(ind<cur.size() or ind2<ed.size()){
~~~^~~~~~~~~~~
bridges.cpp:142:31: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
while(ind<cur.size() or ind2<ed.size()){
~~~~^~~~~~~~~~
bridges.cpp:144:10: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if(ind==cur.size()){
~~~^~~~~~~~~~~~
bridges.cpp:147:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
else if(ind2==ed.size()){
~~~~^~~~~~~~~~~
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
1536 KB |
Output is correct |
2 |
Correct |
1 ms |
1536 KB |
Output is correct |
3 |
Correct |
64 ms |
1868 KB |
Output is correct |
4 |
Correct |
29 ms |
1856 KB |
Output is correct |
5 |
Correct |
42 ms |
1856 KB |
Output is correct |
6 |
Correct |
43 ms |
1856 KB |
Output is correct |
7 |
Correct |
45 ms |
1976 KB |
Output is correct |
8 |
Correct |
40 ms |
1856 KB |
Output is correct |
9 |
Correct |
52 ms |
1856 KB |
Output is correct |
10 |
Correct |
41 ms |
1856 KB |
Output is correct |
11 |
Correct |
40 ms |
1856 KB |
Output is correct |
12 |
Correct |
43 ms |
1856 KB |
Output is correct |
13 |
Correct |
50 ms |
1860 KB |
Output is correct |
14 |
Correct |
46 ms |
1860 KB |
Output is correct |
15 |
Correct |
45 ms |
1860 KB |
Output is correct |
16 |
Correct |
44 ms |
1856 KB |
Output is correct |
17 |
Correct |
46 ms |
1856 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1290 ms |
8300 KB |
Output is correct |
2 |
Correct |
1257 ms |
8300 KB |
Output is correct |
3 |
Correct |
1317 ms |
8344 KB |
Output is correct |
4 |
Correct |
1252 ms |
8556 KB |
Output is correct |
5 |
Correct |
1243 ms |
8420 KB |
Output is correct |
6 |
Correct |
1793 ms |
8432 KB |
Output is correct |
7 |
Correct |
1685 ms |
8452 KB |
Output is correct |
8 |
Correct |
1663 ms |
8164 KB |
Output is correct |
9 |
Correct |
286 ms |
3432 KB |
Output is correct |
10 |
Correct |
1488 ms |
8556 KB |
Output is correct |
11 |
Correct |
1363 ms |
8292 KB |
Output is correct |
12 |
Correct |
1012 ms |
8428 KB |
Output is correct |
13 |
Correct |
867 ms |
8260 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1118 ms |
6748 KB |
Output is correct |
2 |
Correct |
1108 ms |
4324 KB |
Output is correct |
3 |
Correct |
1375 ms |
6768 KB |
Output is correct |
4 |
Correct |
1095 ms |
6764 KB |
Output is correct |
5 |
Correct |
276 ms |
3416 KB |
Output is correct |
6 |
Correct |
1206 ms |
6932 KB |
Output is correct |
7 |
Correct |
1031 ms |
6792 KB |
Output is correct |
8 |
Correct |
907 ms |
6764 KB |
Output is correct |
9 |
Correct |
792 ms |
6380 KB |
Output is correct |
10 |
Correct |
736 ms |
6376 KB |
Output is correct |
11 |
Correct |
639 ms |
6632 KB |
Output is correct |
12 |
Correct |
543 ms |
6912 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1569 ms |
9512 KB |
Output is correct |
2 |
Correct |
266 ms |
3432 KB |
Output is correct |
3 |
Correct |
104 ms |
8940 KB |
Output is correct |
4 |
Correct |
104 ms |
8936 KB |
Output is correct |
5 |
Correct |
1508 ms |
9444 KB |
Output is correct |
6 |
Correct |
1577 ms |
9412 KB |
Output is correct |
7 |
Correct |
1507 ms |
9728 KB |
Output is correct |
8 |
Correct |
664 ms |
7532 KB |
Output is correct |
9 |
Correct |
652 ms |
7520 KB |
Output is correct |
10 |
Correct |
640 ms |
7916 KB |
Output is correct |
11 |
Correct |
988 ms |
8424 KB |
Output is correct |
12 |
Correct |
959 ms |
8424 KB |
Output is correct |
13 |
Correct |
977 ms |
8424 KB |
Output is correct |
14 |
Correct |
1474 ms |
9572 KB |
Output is correct |
15 |
Correct |
1476 ms |
9444 KB |
Output is correct |
16 |
Correct |
1461 ms |
9320 KB |
Output is correct |
17 |
Correct |
1472 ms |
9412 KB |
Output is correct |
18 |
Correct |
1392 ms |
9572 KB |
Output is correct |
19 |
Correct |
1395 ms |
9356 KB |
Output is correct |
20 |
Correct |
1134 ms |
8776 KB |
Output is correct |
21 |
Correct |
1126 ms |
8680 KB |
Output is correct |
22 |
Correct |
1457 ms |
9312 KB |
Output is correct |
23 |
Correct |
1179 ms |
8552 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1290 ms |
8300 KB |
Output is correct |
2 |
Correct |
1257 ms |
8300 KB |
Output is correct |
3 |
Correct |
1317 ms |
8344 KB |
Output is correct |
4 |
Correct |
1252 ms |
8556 KB |
Output is correct |
5 |
Correct |
1243 ms |
8420 KB |
Output is correct |
6 |
Correct |
1793 ms |
8432 KB |
Output is correct |
7 |
Correct |
1685 ms |
8452 KB |
Output is correct |
8 |
Correct |
1663 ms |
8164 KB |
Output is correct |
9 |
Correct |
286 ms |
3432 KB |
Output is correct |
10 |
Correct |
1488 ms |
8556 KB |
Output is correct |
11 |
Correct |
1363 ms |
8292 KB |
Output is correct |
12 |
Correct |
1012 ms |
8428 KB |
Output is correct |
13 |
Correct |
867 ms |
8260 KB |
Output is correct |
14 |
Correct |
1118 ms |
6748 KB |
Output is correct |
15 |
Correct |
1108 ms |
4324 KB |
Output is correct |
16 |
Correct |
1375 ms |
6768 KB |
Output is correct |
17 |
Correct |
1095 ms |
6764 KB |
Output is correct |
18 |
Correct |
276 ms |
3416 KB |
Output is correct |
19 |
Correct |
1206 ms |
6932 KB |
Output is correct |
20 |
Correct |
1031 ms |
6792 KB |
Output is correct |
21 |
Correct |
907 ms |
6764 KB |
Output is correct |
22 |
Correct |
792 ms |
6380 KB |
Output is correct |
23 |
Correct |
736 ms |
6376 KB |
Output is correct |
24 |
Correct |
639 ms |
6632 KB |
Output is correct |
25 |
Correct |
543 ms |
6912 KB |
Output is correct |
26 |
Correct |
1243 ms |
8580 KB |
Output is correct |
27 |
Correct |
1787 ms |
11116 KB |
Output is correct |
28 |
Correct |
1611 ms |
15736 KB |
Output is correct |
29 |
Correct |
1247 ms |
10664 KB |
Output is correct |
30 |
Correct |
1599 ms |
8576 KB |
Output is correct |
31 |
Correct |
1671 ms |
8716 KB |
Output is correct |
32 |
Correct |
1667 ms |
8544 KB |
Output is correct |
33 |
Correct |
1400 ms |
8420 KB |
Output is correct |
34 |
Correct |
1434 ms |
8404 KB |
Output is correct |
35 |
Correct |
1500 ms |
8576 KB |
Output is correct |
36 |
Correct |
1099 ms |
8468 KB |
Output is correct |
37 |
Correct |
1099 ms |
8476 KB |
Output is correct |
38 |
Correct |
1086 ms |
8328 KB |
Output is correct |
39 |
Correct |
864 ms |
8076 KB |
Output is correct |
40 |
Correct |
879 ms |
8036 KB |
Output is correct |
41 |
Correct |
889 ms |
8036 KB |
Output is correct |
42 |
Correct |
744 ms |
8424 KB |
Output is correct |
43 |
Correct |
719 ms |
8552 KB |
Output is correct |
44 |
Correct |
727 ms |
8400 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
1536 KB |
Output is correct |
2 |
Correct |
1 ms |
1536 KB |
Output is correct |
3 |
Correct |
64 ms |
1868 KB |
Output is correct |
4 |
Correct |
29 ms |
1856 KB |
Output is correct |
5 |
Correct |
42 ms |
1856 KB |
Output is correct |
6 |
Correct |
43 ms |
1856 KB |
Output is correct |
7 |
Correct |
45 ms |
1976 KB |
Output is correct |
8 |
Correct |
40 ms |
1856 KB |
Output is correct |
9 |
Correct |
52 ms |
1856 KB |
Output is correct |
10 |
Correct |
41 ms |
1856 KB |
Output is correct |
11 |
Correct |
40 ms |
1856 KB |
Output is correct |
12 |
Correct |
43 ms |
1856 KB |
Output is correct |
13 |
Correct |
50 ms |
1860 KB |
Output is correct |
14 |
Correct |
46 ms |
1860 KB |
Output is correct |
15 |
Correct |
45 ms |
1860 KB |
Output is correct |
16 |
Correct |
44 ms |
1856 KB |
Output is correct |
17 |
Correct |
46 ms |
1856 KB |
Output is correct |
18 |
Correct |
1290 ms |
8300 KB |
Output is correct |
19 |
Correct |
1257 ms |
8300 KB |
Output is correct |
20 |
Correct |
1317 ms |
8344 KB |
Output is correct |
21 |
Correct |
1252 ms |
8556 KB |
Output is correct |
22 |
Correct |
1243 ms |
8420 KB |
Output is correct |
23 |
Correct |
1793 ms |
8432 KB |
Output is correct |
24 |
Correct |
1685 ms |
8452 KB |
Output is correct |
25 |
Correct |
1663 ms |
8164 KB |
Output is correct |
26 |
Correct |
286 ms |
3432 KB |
Output is correct |
27 |
Correct |
1488 ms |
8556 KB |
Output is correct |
28 |
Correct |
1363 ms |
8292 KB |
Output is correct |
29 |
Correct |
1012 ms |
8428 KB |
Output is correct |
30 |
Correct |
867 ms |
8260 KB |
Output is correct |
31 |
Correct |
1118 ms |
6748 KB |
Output is correct |
32 |
Correct |
1108 ms |
4324 KB |
Output is correct |
33 |
Correct |
1375 ms |
6768 KB |
Output is correct |
34 |
Correct |
1095 ms |
6764 KB |
Output is correct |
35 |
Correct |
276 ms |
3416 KB |
Output is correct |
36 |
Correct |
1206 ms |
6932 KB |
Output is correct |
37 |
Correct |
1031 ms |
6792 KB |
Output is correct |
38 |
Correct |
907 ms |
6764 KB |
Output is correct |
39 |
Correct |
792 ms |
6380 KB |
Output is correct |
40 |
Correct |
736 ms |
6376 KB |
Output is correct |
41 |
Correct |
639 ms |
6632 KB |
Output is correct |
42 |
Correct |
543 ms |
6912 KB |
Output is correct |
43 |
Correct |
1569 ms |
9512 KB |
Output is correct |
44 |
Correct |
266 ms |
3432 KB |
Output is correct |
45 |
Correct |
104 ms |
8940 KB |
Output is correct |
46 |
Correct |
104 ms |
8936 KB |
Output is correct |
47 |
Correct |
1508 ms |
9444 KB |
Output is correct |
48 |
Correct |
1577 ms |
9412 KB |
Output is correct |
49 |
Correct |
1507 ms |
9728 KB |
Output is correct |
50 |
Correct |
664 ms |
7532 KB |
Output is correct |
51 |
Correct |
652 ms |
7520 KB |
Output is correct |
52 |
Correct |
640 ms |
7916 KB |
Output is correct |
53 |
Correct |
988 ms |
8424 KB |
Output is correct |
54 |
Correct |
959 ms |
8424 KB |
Output is correct |
55 |
Correct |
977 ms |
8424 KB |
Output is correct |
56 |
Correct |
1474 ms |
9572 KB |
Output is correct |
57 |
Correct |
1476 ms |
9444 KB |
Output is correct |
58 |
Correct |
1461 ms |
9320 KB |
Output is correct |
59 |
Correct |
1472 ms |
9412 KB |
Output is correct |
60 |
Correct |
1392 ms |
9572 KB |
Output is correct |
61 |
Correct |
1395 ms |
9356 KB |
Output is correct |
62 |
Correct |
1134 ms |
8776 KB |
Output is correct |
63 |
Correct |
1126 ms |
8680 KB |
Output is correct |
64 |
Correct |
1457 ms |
9312 KB |
Output is correct |
65 |
Correct |
1179 ms |
8552 KB |
Output is correct |
66 |
Correct |
1243 ms |
8580 KB |
Output is correct |
67 |
Correct |
1787 ms |
11116 KB |
Output is correct |
68 |
Correct |
1611 ms |
15736 KB |
Output is correct |
69 |
Correct |
1247 ms |
10664 KB |
Output is correct |
70 |
Correct |
1599 ms |
8576 KB |
Output is correct |
71 |
Correct |
1671 ms |
8716 KB |
Output is correct |
72 |
Correct |
1667 ms |
8544 KB |
Output is correct |
73 |
Correct |
1400 ms |
8420 KB |
Output is correct |
74 |
Correct |
1434 ms |
8404 KB |
Output is correct |
75 |
Correct |
1500 ms |
8576 KB |
Output is correct |
76 |
Correct |
1099 ms |
8468 KB |
Output is correct |
77 |
Correct |
1099 ms |
8476 KB |
Output is correct |
78 |
Correct |
1086 ms |
8328 KB |
Output is correct |
79 |
Correct |
864 ms |
8076 KB |
Output is correct |
80 |
Correct |
879 ms |
8036 KB |
Output is correct |
81 |
Correct |
889 ms |
8036 KB |
Output is correct |
82 |
Correct |
744 ms |
8424 KB |
Output is correct |
83 |
Correct |
719 ms |
8552 KB |
Output is correct |
84 |
Correct |
727 ms |
8400 KB |
Output is correct |
85 |
Correct |
2475 ms |
24300 KB |
Output is correct |
86 |
Correct |
152 ms |
12008 KB |
Output is correct |
87 |
Correct |
173 ms |
12136 KB |
Output is correct |
88 |
Correct |
2207 ms |
14520 KB |
Output is correct |
89 |
Correct |
2482 ms |
28044 KB |
Output is correct |
90 |
Correct |
2132 ms |
13900 KB |
Output is correct |
91 |
Correct |
1342 ms |
10988 KB |
Output is correct |
92 |
Correct |
1323 ms |
11412 KB |
Output is correct |
93 |
Correct |
1674 ms |
10940 KB |
Output is correct |
94 |
Correct |
1681 ms |
13556 KB |
Output is correct |
95 |
Correct |
1672 ms |
14044 KB |
Output is correct |
96 |
Correct |
1862 ms |
12188 KB |
Output is correct |
97 |
Correct |
1806 ms |
12588 KB |
Output is correct |
98 |
Correct |
1627 ms |
14788 KB |
Output is correct |
99 |
Correct |
2447 ms |
26924 KB |
Output is correct |
100 |
Correct |
2352 ms |
26532 KB |
Output is correct |
101 |
Correct |
2266 ms |
22896 KB |
Output is correct |
102 |
Correct |
2332 ms |
23344 KB |
Output is correct |
103 |
Correct |
1964 ms |
12464 KB |
Output is correct |
104 |
Correct |
1964 ms |
12404 KB |
Output is correct |
105 |
Correct |
1284 ms |
12568 KB |
Output is correct |
106 |
Correct |
978 ms |
12256 KB |
Output is correct |
107 |
Correct |
1472 ms |
12532 KB |
Output is correct |
108 |
Correct |
2480 ms |
20784 KB |
Output is correct |
109 |
Correct |
1992 ms |
11292 KB |
Output is correct |