Submission #1165975


Source Code Expand

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MOD 1000000007LL;

int A[100010]={0}, B[200010]={0}, E, flag, N;
long long C, P;

int check1(void) {
	int i;
	if (flag) {
		for (i=0;i<N;i++) if (A[i]%2) return 1;
	} else {
		for (i=0;i<N;i++) if (!(A[i]%2)) return 1;
	}
	return 0;
}

int check2(void) {
	int i;
	for (i=0;i<N;i++) B[A[i]]++;
	if (flag) {
		if (B[0] != 1) return 1;
		else for (i=2;i<N;i+=2) if (B[i] != 2) return 1;
	} else {
		for (i=1;i<N;i+=2) if (B[i] != 2) return 1;
	}

	C = 1LL;
	P = 2LL;
	E = N/2;
	while (E) {
		if (E & 1) {
			C *= P;
			C %= MOD;
		}
		P *= P;
		P %= MOD;
		E >>= 1;
	}
	return 0;
}

int main(void) {
	int i;
	scanf("%d", &N);
	for (i=0;i<N;i++) scanf("%d", &A[i]);
	if (N%2) flag = 1; else flag = 0;
	if (!check1() && !check2()) {
		printf("%lld\n", C);
	} else {
		printf("0\n");
	}

	return 0;
}

Submission Info

Submission Time
Task C - Lining Up
User k_ashiya
Language C (GCC 5.4.1)
Score 300
Code Size 918 Byte
Status AC
Exec Time 11 ms
Memory 896 KB

Compile Error

./Main.c: In function ‘main’:
./Main.c:47:2: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d", &N);
  ^
./Main.c:48:20: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result]
  for (i=0;i<N;i++) 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 9 ms 768 KB
subtask_1_invalid_02.txt AC 2 ms 256 KB
subtask_1_max_01.txt AC 11 ms 512 KB
subtask_1_max_02.txt AC 11 ms 512 KB
subtask_1_max_valid_01.txt AC 11 ms 896 KB
subtask_1_max_valid_02.txt AC 11 ms 896 KB
subtask_1_min_valid_01.txt AC 1 ms 128 KB
subtask_1_rand_01.txt AC 7 ms 384 KB
subtask_1_rand_02.txt AC 10 ms 512 KB
subtask_1_valid_01.txt AC 6 ms 640 KB
subtask_1_valid_02.txt AC 3 ms 384 KB