Submission #568919

#TimeUsernameProblemLanguageResultExecution timeMemory
568919HappyPacManBridges (APIO19_bridges)C++14
0 / 100
3078 ms9672 KiB
#include <bits/stdc++.h>
using namespace std;
const int maxn = 5e4 + 2;
vector<pair<int,int> > adj[maxn];
vector<tuple<int,int,int> > edge;
bool vis[maxn];

int dfs(int u,int c){
	if(vis[u]){
		return 0;
	}
	vis[u] = true;
	int res = 1;
	for(auto [v,w] : adj[u]){
		if(w >= c){
			res += dfs(v,c);
		}
	}
	return res;
}

int main(){
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);

	int n,m;
	cin >> n >> m;
	for(int i=1;i<=m;i++){
		int u,v,w;
		cin >> u >> v >> w;
		adj[u].emplace_back(v,w);
		adj[v].emplace_back(u,w);
		edge.emplace_back(u,v,w);
	}
	int q;
	cin >> q;
	while(q--){
		int t,x,y;
		cin >> t >> x >> y;
		if(t == 1){
			int u = get<0>(edge[x-1]);
			int v = get<1>(edge[x-1]);
			int w = get<2>(edge[x-1]);
			int ux = lower_bound(adj[u].begin(),adj[u].end(),make_pair(v,w))-adj[u].begin();
			int vx = lower_bound(adj[v].begin(),adj[v].end(),make_pair(u,w))-adj[v].begin();
			edge[x-1] = make_tuple(u,v,y);
			adj[u][ux].second = y;
			adj[v][vx].second = y;
		}else{
			memset(vis,false,sizeof(vis));
			cout << dfs(x,y) << '\n';
		}
	}
}

Compilation message (stderr)

bridges.cpp: In function 'int dfs(int, int)':
bridges.cpp:14:11: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   14 |  for(auto [v,w] : adj[u]){
      |           ^
#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...