제출 #261779

#제출 시각아이디문제언어결과실행 시간메모리
261779cheehengColors (RMI18_colors)C++14
22 / 100
87 ms7552 KiB
#include <bits/stdc++.h> using namespace std; typedef pair<int, int> ii; vector<int> AdjList[150005]; int a[150005]; int b[150005]; ii ab[150005]; int deg[150005]; int main(){ int t; scanf("%d", &t); while(t --){ int N, M; scanf("%d%d", &N, &M); for(int i = 1; i <= N; i ++){ AdjList[i].clear(); deg[i] = 0; } set<int> s1; for(int i = 1; i <= N; i ++){ scanf("%d", &a[i]); s1.insert(a[i]); } for(int i = 1; i <= N; i ++){ scanf("%d", &b[i]); } for(int i = 0; i < M; i ++){ int u, v; scanf("%d%d", &u, &v); AdjList[u].push_back(v); AdjList[v].push_back(u); deg[u] ++; deg[v] ++; } int ans = 1; for(int i = 1; i <= N; i ++){ if(b[i] > a[i] || s1.find(b[i]) == s1.end()){ ans = 0; break; } } if(ans == 0){ printf("0\n"); continue; } int starVertex = -1; for(int i = 1; i <= N; i ++){ if(deg[i] == N-1){ starVertex = i; break; } } if((long long)M == (long long)N*(N-1)/2){ multiset<int> s; for(int i = 1; i <= N; i ++){ ab[i] = ii(a[i], b[i]); s.insert(a[i]); } sort(ab+1, ab+(N+1), greater<ii>()); for(int i = 1; i <= N; i ++){ if(ab[i].first == ab[i].second){continue;} if(ab[i].first < ab[i].second){ ans = 0; break; } if(s.find(ab[i].second) != s.end()){ }else{ ans = 0; break; } s.erase(s.find(ab[i].first)); } printf("%d\n", ans); continue; } if(starVertex != -1 && M == N-1){ for(int i = 1; i <= N; i ++){ if(i == starVertex){continue;} if(b[i] <= a[starVertex] && b[i] >= b[starVertex] || b[i] == a[i]){ }else{ ans = 0; break; } } printf("%d\n", ans); continue; } throw; } return 0; }

컴파일 시 표준 에러 (stderr) 메시지

colors.cpp: In function 'int main()':
colors.cpp:95:42: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
                 if(b[i] <= a[starVertex] && b[i] >= b[starVertex] || b[i] == a[i]){
                    ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
colors.cpp:14:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d", &t);
     ~~~~~^~~~~~~~~~
colors.cpp:18:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d%d", &N, &M);
         ~~~~~^~~~~~~~~~~~~~~~
colors.cpp:27:18: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
             scanf("%d", &a[i]);
             ~~~~~^~~~~~~~~~~~~
colors.cpp:32:18: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
             scanf("%d", &b[i]);
             ~~~~~^~~~~~~~~~~~~
colors.cpp:37:18: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
             scanf("%d%d", &u, &v);
             ~~~~~^~~~~~~~~~~~~~~~
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...