Submission #2894

#TimeUsernameProblemLanguageResultExecution timeMemory
2894kipa00간선 파괴 (GA5_destroy)C++98
25 / 100
2500 ms2676 KiB
#include <cstdio> #include <vector> #include <memory.h> using namespace std; int V, E, Q; pair<int, int> region; vector<pair<int, int> > linklist[701]; bool Check[701]; void dfs(int Node) { int i; for (i=0; i<linklist[Node].size(); ++i) { int Node2 = linklist[Node][i].first, lineNum = linklist[Node][i].second; if (region.first <= lineNum && lineNum <= region.second) continue; if (!Check[Node2]) { Check[Node2] = true; dfs(Node2); } } } int dfsAll() { int i, cnt = 0; for (i=1; i<=V; ++i) { if (!Check[i]) { Check[i] = true; dfs(i); ++cnt; } } return cnt; } int main() { int i; scanf("%d %d", &V, &E); for (i=1; i<=E; ++i) { int st, ed; scanf("%d %d", &st, &ed); linklist[st].push_back(make_pair(ed, i)); linklist[ed].push_back(make_pair(st, i)); } scanf("%d", &Q); while (Q--) { scanf("%d %d", &region.first, &region.second); memset(Check, 0, 701); printf("%d\n", dfsAll()); } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...