답안 #261832

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
261832 2020-08-12T05:54:14 Z dantoh000 Colors (RMI18_colors) C++14
7 / 100
70 ms 7584 KB
#include <bits/stdc++.h>
using namespace std;
int n,m;
int a[150005], b[150005];
vector<int> G[150005];
bool cmp(int x, int y){
    return b[x] > b[y];
}
int main(){
    int tc;
    scanf("%d",&tc);
    while (tc--){
        scanf("%d%d",&n,&m);
        for (int i = 1; i <= n; i++){
            G[i].clear();
            scanf("%d",&a[i]);
        }
        for (int i = 1; i <= n; i++){
            scanf("%d",&b[i]);
        }
        for (int i = 1; i <= m; i++){
            int u,v;
            scanf("%d%d",&u,&v);
            G[u].push_back(v);
            G[v].push_back(u);
        }
        int ans=1;
        if (m == n*(n-1)/2){
            for (int i = 1; i <= n; i++){
                if (a[i] != b[i]){
                    if (b[i] > a[i]){
                        ans =0;
                    }
                    else{
                        int found = 0;
                        for (int j = 1; j <= n; j++){
                            if (a[j] == b[i]) found = 1;
                        }
                        if (!found) ans = 0;
                    }
                }
            }
        }
        else{
            int star;
            for (int i= 1;i <= n;i++) if(G[i].size() == n-1)star = i;
            vector<int>  ord(n);
            for (int i=  1; i <= n; i++){
                ord[i-1] = i;
            }
            sort(ord.begin(),ord.end(),cmp);
            for (auto x : ord){
                if (a[x] != b[x]){
                    if (b[x] > a[x]) ans = 0;
                    int found =0;
                    for (int j = 1; j <= n; j++){
                        if (a[j] == b[x]){
                            found = 1;
                            break;
                        }
                    }
                    if (!found) ans = 0;
                    a[star] = a[x] = b[x];
                }
            }
            for (int i = 1; i <= n; i++){
                if (a[i] != b[i]) ans = 0;
            }
        }
        printf("%d\n",ans);
    }
}

Compilation message

colors.cpp: In function 'int main()':
colors.cpp:46:54: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
             for (int i= 1;i <= n;i++) if(G[i].size() == n-1)star = i;
                                          ~~~~~~~~~~~~^~~~~~
colors.cpp:11:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d",&tc);
     ~~~~~^~~~~~~~~~
colors.cpp:13: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:16:18: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
             scanf("%d",&a[i]);
             ~~~~~^~~~~~~~~~~~
colors.cpp:19:18: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
             scanf("%d",&b[i]);
             ~~~~~^~~~~~~~~~~~
colors.cpp:23:18: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
             scanf("%d%d",&u,&v);
             ~~~~~^~~~~~~~~~~~~~
colors.cpp:63:29: warning: 'star' may be used uninitialized in this function [-Wmaybe-uninitialized]
                     a[star] = a[x] = b[x];
                     ~~~~~~~~^~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Incorrect 70 ms 3840 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 68 ms 3840 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Runtime error 8 ms 7552 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 8 ms 7552 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 70 ms 3840 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 8 ms 7584 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 8 ms 7552 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 70 ms 3840 KB Output isn't correct
2 Halted 0 ms 0 KB -