Submission #1352991

#TimeUsernameProblemLanguageResultExecution timeMemory
1352991po_rag526Bridges (APIO19_bridges)C++20
0 / 100
7 ms21316 KiB
#include<bits/stdc++.h>
using namespace std;
#define ff first
#define ss second
#define pb push_back
const int N=2000;
int c[N][N];
int id[N][N];
vector<int>v[N];
pair<int,int>br[N];
bool vis[N];
int cnt=0;
void dfs(int a, int w){
	cnt++;
	vis[a]=1;
	for(auto b:v[a]){
		if(c[a][b]>=w and vis[b]==0){
			dfs(b,w);
		}
	}
}
signed main(){
	int n,m;
	cin>>n>>m;
	for(int i=1;i<=m;i++){
		int a,b;
		cin>>a>>b;
		cin>>c[a][b];
		c[b][a]=c[a][b];
		
		id[a][b]=id[b][a]=i;
		v[a].pb(b);
		v[b].pb(a);
		
		br[i]={a,b};
	}
	int q;
	cin>>q;
	for(int i=0;i<q;i++){
		int t;
		cin>>t;
		if(t==1){
			int idx,w;
			cin>>idx>>w;
			int a=br[idx].ff,b=br[idx].ss;
			c[a][b]=c[b][a]=w;
		}
		else{
			int x,w;
			cnt=0;
			cin>>x>>w;
			for(int i=0;i<=n;i++)vis[i]=0;
			dfs(x,w);
			cout<<cnt<<endl;
		}
	}
	
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...