제출 #1004985

#제출 시각아이디문제언어결과실행 시간메모리
1004985vjudge1다리 (APIO19_bridges)C++17
0 / 100
97 ms860 KiB
#include<bits/stdc++.h>

using namespace std;

const int N = 1e3 + 5;
set<pair<int,int> > G[N];
vector<vector<int> > e;
bitset<N> seen;

void dfs(int v, int w)
{
  seen[v] = 1;
  for(auto [u, ew] : G[v])
    if(w <= ew && !seen.test(u))
      dfs(u, w);
}

int main()
{
  int n, m;
  cin >> n >> m;
  for(int i = 0; i < m; i ++)
    {
      int u, v, w;
      cin >> u >> v >> w;
      G[u].insert({v, w});
      G[v].insert({u, w});
      e.push_back({u, v, w});
    }

  int q;
  cin >> q;
  while(q--)
    {
      int t, x, y;
      cin >> t >> x >> y;
      if(t == 1)
	{
	  x--;
	  int u = e[x][0], v = e[x][1], w = e[x][2];
	  G[u].erase({v, w});
	  G[v].erase({u, w});
	  w = e[x][2] = y;
	  G[u].insert({v, w});
	  G[v].insert({u, w});
	}
      else
	{
	  dfs(x, y);
	  cout << seen.count() << endl;
	  seen.reset();
	}
    }
  
  return 0;
}
#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...