Submission #1518383


Source Code Expand

#include <bits/stdc++.h>
#include <math.h>
#define uint unsigned long long
#define ll long long
#define db double
#define ls rt << 1
#define rs rt << 1 | 1
#define pb push_back
#define mp make_pair
#define pii pair<int, int>
#define X first
#define Y second
#define pcc pair<char, char>
#define vi vector<int>
#define vl vector<ll>
#define rep(i, x, y) for(int i = x; i <= y; i ++)
#define rrep(i, x, y) for(int i = x; i >= y; i --)
#define ept 1e-9

using namespace std;
inline int read()
{
    int x = 0, f = 1; char ch = getchar();
    while (ch < '0' || ch > '9') { if (ch == '-') f = -1; ch = getchar(); }
    while (ch >= '0' && ch <= '9') { x = x * 10 + ch - '0'; ch = getchar(); }
    return x * f;
}
const int mod = 1e9 + 7;
const int N = 100010;
int n;
int a[N], po[N];

int main()
{
    po[0] = 1;
    for(int i = 1; i < N; i++)
	    po[i] = po[i - 1] * 2 % mod;

    n = read();
    rep(i, 0, n - 1) a[i] = read();

    sort(a, a + n);

    if(n % 2)
    {
    	rep(i, 0, n - 1)
            if(a[i] != ((i + 1) / 2) * 2)
            {
                printf("0");
                return 0;
            }
    }
    else
    {
    	rep(i, 0, n - 1)
            if(a[i] != (i / 2) * 2 + 1)
            {
                printf("0");
                return 0;
            }
    }
    printf("%d", po[n / 2]);
    return 0;
}

Submission Info

Submission Time
Task C - Lining Up
User lzr156
Language C++14 (GCC 5.4.1)
Score 300
Code Size 1397 Byte
Status AC
Exec Time 12 ms
Memory 1024 KB

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 2 ms 640 KB
sample_02.txt AC 2 ms 640 KB
sample_03.txt AC 2 ms 640 KB
subtask_1_invalid_01.txt AC 10 ms 1024 KB
subtask_1_invalid_02.txt AC 3 ms 768 KB
subtask_1_max_01.txt AC 12 ms 1024 KB
subtask_1_max_02.txt AC 12 ms 1024 KB
subtask_1_max_valid_01.txt AC 12 ms 1024 KB
subtask_1_max_valid_02.txt AC 12 ms 1024 KB
subtask_1_min_valid_01.txt AC 2 ms 640 KB
subtask_1_rand_01.txt AC 8 ms 896 KB
subtask_1_rand_02.txt AC 11 ms 1024 KB
subtask_1_valid_01.txt AC 7 ms 896 KB
subtask_1_valid_02.txt AC 4 ms 768 KB