Submission #1070677


Source Code Expand

#include <iostream>
#include <string>
using namespace std;
#define REP(i,n) for(int i = 0; i < (int)(n); ++i)
#define FOR(i,a,b) for(int i = (a); i <= (int)(b); ++i)
#define ALL(c) (c).begin(), (c).end()
#define SIZE(v) ((int)v.size())

int main()
{
	const int MOD = 1000000007;
	int N;
	cin >> N;
	int A[N];
	REP(i,N) cin >> A[i];
	int arr[N];
	REP(i,N) arr[i]=0;//ここで初期化しないといけない。
	bool error = false;
	REP(i,N){
		if(N%2 == A[i]%2){
			error = true;
			break;
		}else{
			arr[A[i]]++;
		}
	}
	long long sum = 1;
	REP(i,N){
		if(arr[0] > 1){
			error = true;
			break;
		}else if(arr[i] > 2){
			error = true;
			break;
		}else if(arr[i]!=0 && i!=0){
			sum = sum * 2 % MOD;
		}
	}
	if(error){
		cout << 0 << endl;
	}else{
		cout << sum << endl;
	}    
    return 0;
}

Submission Info

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

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 300 / 300
Status
AC × 3
AC × 11
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
All 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 3 ms 256 KB
sample_02.txt AC 3 ms 256 KB
sample_03.txt AC 3 ms 256 KB
subtask_1_invalid_01.txt AC 30 ms 896 KB
subtask_1_invalid_02.txt AC 8 ms 384 KB
subtask_1_max_01.txt AC 36 ms 1024 KB
subtask_1_max_02.txt AC 36 ms 1024 KB
subtask_1_max_valid_01.txt AC 36 ms 1024 KB
subtask_1_max_valid_02.txt AC 36 ms 1024 KB
subtask_1_min_valid_01.txt AC 3 ms 256 KB
subtask_1_rand_01.txt AC 23 ms 768 KB
subtask_1_rand_02.txt AC 33 ms 896 KB
subtask_1_valid_01.txt AC 21 ms 640 KB
subtask_1_valid_02.txt AC 9 ms 512 KB