This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include"bits/stdc++.h"
using namespace std;
#define LL long long
#define MP make_pair
int N,M,Q;
pair<int,int> bridge[100000];
vector<pair<int,int>> edge[50000];
vector<int> edgeNum[500000];
int main(){
cin >> N >> M;
for(int i=0; i<M; i++){
int a, b, c;
cin >> a >> b >> c;
bridge[i] = MP(a-1, b-1);
edge[a-1].push_back(MP(b-1,c));
edgeNum[a-1].push_back(i);
edge[b-1].push_back(MP(a-1,c));
edgeNum[b-1].push_back(i);
}
cin >> Q;
for(int i=0; i<Q; i++){
int t, a, b;
cin >> t >> a >> b;
if(t == 1){
int c = b;
int n = a-1;
a = bridge[n].first;
b = bridge[n].second;
for(int j=0; j<edge[a].size(); j++){
if(edgeNum[a][j] == n) edge[a][j].second = c;
}
for(int j=0; j<edge[b].size(); j++){
if(edgeNum[b][j] == n) edge[b][j].second = c;
}
}
else{
int w = b;
int p = a-1;
bool visited[100000] = {};
visited[p] = true;
queue<int> que;
que.push(p);
while(!que.empty()){
int now = que.front();
que.pop();
for(int j=0; j<edge[now].size(); j++){
if(edge[now][j].second < w) continue;
if(!visited[edge[now][j].first]){
visited[edge[now][j].first] = true;
que.push(edge[now][j].first);
}
}
}
int ans = 0;
for(int j=0; j<N; j++){
if(visited[j]) ans++;
}
cout << ans << endl;
}
}
return 0;
}
Compilation message (stderr)
bridges.cpp: In function 'int main()':
bridges.cpp:31:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int j=0; j<edge[a].size(); j++){
~^~~~~~~~~~~~~~~
bridges.cpp:34:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int j=0; j<edge[b].size(); j++){
~^~~~~~~~~~~~~~~
bridges.cpp:48:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int j=0; j<edge[now].size(); j++){
~^~~~~~~~~~~~~~~~~
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |