Submission #1535419


Source Code Expand

#include<bits/stdc++.h>
using namespace std;

const int mod = 1000*1000*1000+7;

int N;
vector<int> T;
vector<int> A;
vector<int> H;
vector<int> X;

int main() {
    scanf("%d", &N);
    T.resize(N);
    for(int i = 0; i < N; i++) {
        scanf("%d", &T[i]);
    }
    A.resize(N);
    for(int i = 0; i < N; i++) {
        scanf("%d", &A[i]);
    }
    H = vector<int>(N, -1);

    for(int i = 0; i < N; i++) {
        if(i == 0 || T[i - 1] != T[i]) H[i] = T[i];
    }
    for(int i = N - 1; i >= 0; i--) {
        if(i == N - 1 || A[i + 1] != A[i]) {
            if(H[i] != -1 && H[i] != A[i]) {
                printf("0");
                return 0;
            }
            H[i] = A[i];
        }
    }
    X = vector<int>(N, -1);
    int mx = -1;
    for(int i = 0; i < N; i++) {
        mx = max(mx, H[i]);
        if(mx != T[i]) {
            printf("0");
            return 0;
        }
        X[i] = mx;
    }
    mx = -1;
    for(int i = N - 1; i >= 0; i--) {
        mx = max(mx, H[i]);
        if(mx != A[i]) {
            printf("0");
            return 0;
        }
        X[i] = min(X[i], mx);
    }

    int ans = 1;
    for(int i = 0; i < N; i++) if(H[i] == -1) {
        ans = 1LL * ans * X[i] % mod;
    }
    cout << ans;
}

Submission Info

Submission Time
Task C - Two Alpinists
User choikiwon
Language C++14 (GCC 5.4.1)
Score 400
Code Size 1309 Byte
Status AC
Exec Time 27 ms
Memory 1792 KB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:13:20: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d", &N);
                    ^
./Main.cpp:16:27: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d", &T[i]);
                           ^
./Main.cpp:20:27: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d", &A[i]);
                           ^

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 400 / 400
Status
AC × 4
AC × 21
Set Name Test Cases
Sample 0_000.txt, 0_001.txt, 0_002.txt, 0_003.txt
All 0_000.txt, 0_001.txt, 0_002.txt, 0_003.txt, 1_004.txt, 1_005.txt, 1_006.txt, 1_007.txt, 1_008.txt, 1_009.txt, 1_010.txt, 1_011.txt, 1_012.txt, 1_013.txt, 1_014.txt, 1_015.txt, 1_016.txt, 1_017.txt, 1_018.txt, 1_019.txt, 1_020.txt
Case Name Status Exec Time Memory
0_000.txt AC 1 ms 256 KB
0_001.txt AC 1 ms 256 KB
0_002.txt AC 1 ms 256 KB
0_003.txt AC 1 ms 256 KB
1_004.txt AC 1 ms 256 KB
1_005.txt AC 1 ms 256 KB
1_006.txt AC 1 ms 256 KB
1_007.txt AC 1 ms 256 KB
1_008.txt AC 27 ms 1792 KB
1_009.txt AC 23 ms 1792 KB
1_010.txt AC 24 ms 1792 KB
1_011.txt AC 26 ms 1792 KB
1_012.txt AC 24 ms 1408 KB
1_013.txt AC 25 ms 1792 KB
1_014.txt AC 24 ms 1408 KB
1_015.txt AC 26 ms 1792 KB
1_016.txt AC 23 ms 1408 KB
1_017.txt AC 25 ms 1792 KB
1_018.txt AC 23 ms 1792 KB
1_019.txt AC 23 ms 1792 KB
1_020.txt AC 21 ms 1792 KB