# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
261746 | 2020-08-12T04:03:07 Z | tqbfjotld | Colors (RMI18_colors) | C++14 | 3000 ms | 4756 KB |
#include <bits/stdc++.h> using namespace std; int init[150005]; int fin[150005]; vector<int> adjl[150005]; vector<pair<int,int> > order; queue<pair<int,int> > q; bool visited[150005]; int counter = 0; bool dfs(int node, int findcol, int finx){ if (init[node]==findcol) return true; visited[node] = true; counter++; //assert(counter<=5000000); for (auto x : adjl[node]){ if (init[x]<finx || fin[x]>finx) continue; if (!visited[x]){ if (dfs(x,findcol,finx)) { init[node] = finx; return true; } } } return false; } void dfs2(int node){ for (auto x : adjl[node]){ if (init[x]<=init[node] || fin[x]>init[node]){ continue; } init[x] = init[node]; dfs2(x); } } int counter2 = 0; int main(){ int test; scanf("%d",&test); while (test--){ int n,m; scanf("%d%d",&n,&m); counter2 += n*n; assert(counter2<=5000000); for (int x = 1; x<=n; x++){ scanf("%d",&init[x]); adjl[x].clear(); } bool poss1 = true; for (int x = 1; x<=n; x++){ scanf("%d",&fin[x]); if (fin[x]>init[x]) poss1 = false; order.push_back({init[x],x}); } sort(order.begin(),order.end(),greater<pair<int,int> >()); for (int x = 0; x<m; x++){ int a,b; scanf("%d%d",&a,&b); adjl[a].push_back(b); adjl[b].push_back(a); } if (!poss1) { printf("0\n"); continue; } bool poss = true; /*for (auto x : order){ for (int x = 1; x<=n; x++) visited[x] = false; if (!dfs(x.second,fin[x.second],fin[x.second])){ printf("0\n"); poss = false; break; } }*/ for (auto x : order){ dfs2(x.second); } for (int x = 1; x<=n; x++){ if (init[x]!=fin[x]){ poss = false; printf("0\n"); break; } } if (poss){ printf("1\n"); } } }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Execution timed out | 3091 ms | 4644 KB | Time limit exceeded |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 860 ms | 4288 KB | Output isn't correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Execution timed out | 3066 ms | 4756 KB | Time limit exceeded |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Execution timed out | 3066 ms | 4756 KB | Time limit exceeded |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Execution timed out | 3091 ms | 4644 KB | Time limit exceeded |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Execution timed out | 3074 ms | 4544 KB | Time limit exceeded |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 454 ms | 4088 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Execution timed out | 3091 ms | 4644 KB | Time limit exceeded |
2 | Halted | 0 ms | 0 KB | - |