Submission #1352132


Source Code Expand

// Copyright 2017 wu_qing
#include <cstdint>
#include <cstdio>
#include <algorithm>
const int N = 1e5 + 10, mod = 1e9 + 7;
int n, a[N];
int64_t tot;
bool flag = true;
int64_t qp(int64_t a, int exp) {
    int64_t ans = 1;
    while (exp) {
        if (exp & 1)
            ans = ans * a %mod;
        a = a * a % mod;
        exp >>= 1;
    }
    return ans;
}
int main() {
    scanf("%d", &n);
    for (int i = 1; i <= n; i++)
        scanf("%d", a + i);
    tot = qp(2, n / 2);
    std::sort(a + 1, a + n + 1);
    if (a[1] == 0) {
        for (int i = 2; i <= n; i += 2)
            if (a[i] != i || a[i + 1] != i)
                flag = false;
    } else if (a[1] == 1) {
        for (int i = 1; i <= n; i += 2)
            if (a[i] != i || a[i + 1] != i)
                flag = false;
    } else {
        flag = false;
    }
    if (flag)
        printf("%lld\n", tot);
    else
        printf("0\n");
    return 0;
}

Submission Info

Submission Time
Task C - Lining Up
User wu_qing
Language C++14 (GCC 5.4.1)
Score 300
Code Size 964 Byte
Status AC
Exec Time 16 ms
Memory 512 KB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:37:29: warning: format ‘%lld’ expects argument of type ‘long long int’, but argument 2 has type ‘int64_t {aka long int}’ [-Wformat=]
         printf("%lld\n", tot);
                             ^
./Main.cpp:20:20: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d", &n);
                    ^
./Main.cpp:22: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 300 / 300
Status
AC × 3
AC × 14
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
All sample_01.txt, sample_02.txt, sample_03.txt, subtask_1_invalid_01.txt, subtask_1_invalid_02.txt, subtask_1_max_01.txt, subtask_1_max_02.txt, subtask_1_max_valid_01.txt, subtask_1_max_valid_02.txt, subtask_1_min_valid_01.txt, subtask_1_rand_01.txt, subtask_1_rand_02.txt, subtask_1_valid_01.txt, subtask_1_valid_02.txt
Case Name Status Exec Time Memory
sample_01.txt AC 1 ms 128 KB
sample_02.txt AC 1 ms 128 KB
sample_03.txt AC 1 ms 128 KB
subtask_1_invalid_01.txt AC 13 ms 512 KB
subtask_1_invalid_02.txt AC 3 ms 256 KB
subtask_1_max_01.txt AC 16 ms 512 KB
subtask_1_max_02.txt AC 16 ms 512 KB
subtask_1_max_valid_01.txt AC 16 ms 512 KB
subtask_1_max_valid_02.txt AC 16 ms 512 KB
subtask_1_min_valid_01.txt AC 1 ms 128 KB
subtask_1_rand_01.txt AC 10 ms 384 KB
subtask_1_rand_02.txt AC 14 ms 512 KB
subtask_1_valid_01.txt AC 9 ms 384 KB
subtask_1_valid_02.txt AC 4 ms 256 KB