# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
244470 | 2020-07-04T06:38:20 Z | tqbfjotld | Pipes (CEOI15_pipes) | C++14 | 1539 ms | 65540 KB |
///lib code still allowed right #include <bits/stdc++.h> using namespace std; int low[100005]; int order[100005]; int cur = 1; vector<pair<int,int> > adjl[100005]; ///(node,id) int root = 0; ///ensure no duplicate edges first though void dfs(int node, int pEdge){ order[node] = cur; cur++; low[node] = order[node]; for (auto x : adjl[node]){ if (order[x.first]==-1){ dfs(x.first,x.second); if (low[node]==-1 || (low[x.first]!=-1 && low[x.first]<low[node])){ low[node] = low[x.first]; } if (node!=root){ if (low[x.first]==-1 || low[x.first]>=order[node]){ } } else{ } } else if (x.second!=pEdge){ if (low[node]==-1 || order[x.first]<low[node]) low[node] = order[x.first]; } } } //ans is number of components after removing node (>1 if is articulation point) //bridge break a component if it is removed //HAVE NOT TESTED YET (but should be correct though) inline bool isBridge(int a, int b){ if (order[b]<order[a]) swap(a,b); return low[b]>order[a]; } int n,e; int main(){ scanf("%d%d",&n,&e); for (int x = 0; x<e; x++){ int a,b; scanf("%d%d",&a,&b); a--;b--; adjl[a].push_back({b,x}); adjl[b].push_back({a,x}); } memset(low,-1,sizeof(low)); memset(order,-1,sizeof(order)); for (root = 0; root<n; root++){ if (order[root]==-1) dfs(root,-1); } for (int x = 0; x<n; x++){ //printf("%d: order: %d, low: %d\n",1+x,order[x],low[x]); } for (int x = 0; x<n; x++){ for (auto y : adjl[x]){ if (y.first<x){ if (isBridge(x,y.first)){ printf("%d %d\n",x+1,y.first+1); } } } } }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 7 ms | 3456 KB | Output is correct |
2 | Correct | 7 ms | 3456 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 12 ms | 3968 KB | Output is correct |
2 | Correct | 11 ms | 3840 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Runtime error | 210 ms | 19184 KB | Memory limit exceeded (if you are sure your verdict is not MLE, please contact us) |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Runtime error | 396 ms | 24952 KB | Memory limit exceeded (if you are sure your verdict is not MLE, please contact us) |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Runtime error | 769 ms | 44428 KB | Memory limit exceeded (if you are sure your verdict is not MLE, please contact us) |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Runtime error | 1127 ms | 48888 KB | Memory limit exceeded (if you are sure your verdict is not MLE, please contact us) |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Runtime error | 1440 ms | 65540 KB | Execution killed with signal 9 (could be triggered by violating memory limits) |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Runtime error | 1495 ms | 65540 KB | Execution killed with signal 9 (could be triggered by violating memory limits) |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Runtime error | 1539 ms | 65540 KB | Execution killed with signal 9 (could be triggered by violating memory limits) |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Runtime error | 1480 ms | 65540 KB | Execution killed with signal 9 (could be triggered by violating memory limits) |
2 | Halted | 0 ms | 0 KB | - |