제출 #1031741

#제출 시각아이디문제언어결과실행 시간메모리
1031741KasymKBridges (APIO19_bridges)C++17
0 / 100
3034 ms23876 KiB
#include "bits/stdc++.h"
using namespace std;
#define ff first
#define ss second
#define all(v) v.begin(), v.end()
#define ll long long
#define pb push_back
#define pii pair<int, int>
template<class T>bool umin(T& a,T b){if(a>b){a=b;return 1;}return 0;}
template<class T>bool umax(T& a,T b){if(a<b){a=b;return 1;}return 0;}
const int MOD = 1e9+7;
const int N = 1e5+5;

multiset<pii> adj[N];
vector<vector<int>> e;
int vis[N];

void dfs(int x, int w){
	vis[x] = 1;
	for(auto it = adj[x].begin(); it != adj[x].end(); ++it)
		if(it->ss <= w and !vis[it->ff])
			dfs(it->ff, w);
}

int main(){
	int n, m;
	scanf("%d%d", &n, &m);
	for(int i = 1; i <= m; ++i){
		int a, b, c;
		scanf("%d%d%d", &a, &b, &c);
		adj[a].insert({b, c});
		adj[b].insert({a, c});
		e.pb({a, b, c});
	}
	int q;
	scanf("%d", &q);
	vector<int> v;
	while(q--){
		int op, x, y;
		scanf("%d%d%d", &op, &x, &y);
		if(op == 1){
			x--;
			int a = e[x][0], b = e[x][1], c = e[x][2];
		    adj[a].erase(adj[a].find({b, c}));
	   	    adj[b].erase(adj[b].find({a, c}));
			c = e[x][2] = y;
			adj[a].insert({b, c});
			adj[b].insert({a, c});
			continue;
		}
		dfs(x, y);
		int ans = 0;
		for(int i = 1; i <= n; ++i)
			ans += vis[i], vis[i] = 0;
		v.pb(ans);
	}
	for(int i : v)
		printf("%d\n", i);
  	return 0;
}

컴파일 시 표준 에러 (stderr) 메시지

bridges.cpp: In function 'int main()':
bridges.cpp:27:7: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   27 |  scanf("%d%d", &n, &m);
      |  ~~~~~^~~~~~~~~~~~~~~~
bridges.cpp:30:8: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   30 |   scanf("%d%d%d", &a, &b, &c);
      |   ~~~~~^~~~~~~~~~~~~~~~~~~~~~
bridges.cpp:36:7: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   36 |  scanf("%d", &q);
      |  ~~~~~^~~~~~~~~~
bridges.cpp:40:8: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   40 |   scanf("%d%d%d", &op, &x, &y);
      |   ~~~~~^~~~~~~~~~~~~~~~~~~~~~~
#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...