提出 #1031486


ソースコード 拡げる

// think twice code once
// Start:
// End  :
#include <bits/stdc++.h>
using namespace std;

#define rep(i, x, y) for(int i = (x), _ = (y); i <= _; ++ i)
#define per(i, x, y) for(int i = (x), _ = (y); i >= _; -- i)
#define dprintf(...) fprintf(stderr, __VA_ARGS__)
#define disp(x) cout << #x << " = " << x << "; "

typedef long long LL;

template <class T> bool chkmin(T& a, T b) { return a > b ? a = b, true : false; }
template <class T> bool chkmax(T& a, T b) { return a < b ? a = b, true : false; }

template <class T> void read(T& a) {
	char c = getchar(); T f = 1; a = 0;
	for(; !isdigit(c); c = getchar()) if(c == '-') f = -1;
	for(; isdigit(c); c = getchar()) a = a * 10 + c - '0';
	a *= f;
}

template <class T> void write(T a) {
	static int stk[60]; 
	int tp = 0;
	if(a < 0) putchar('-'), a = -a;
	do {
		stk[++ tp] = a % 10;
		a /= 10;
	}while(a);
	
	while(tp) putchar(stk[tp--] + '0');
}

const int maxN = 1e5 + 5, mo = 1e9 + 7;

int N;
int cnt[maxN];

int pow_mod(int x, int t) {
	int ret = 1;
	while(t) {
		if(t & 1) ret = (LL) ret * x % mo;
		x = (LL) x * x % mo; t >>= 1;
	}
	return ret;
}

int main() {
#ifdef Leeson
	freopen("tmp.in", "r", stdin);
	freopen("tmp.out", "w", stdout);
#endif

	read(N);
	rep(i, 1, N) {
		int a;
		read(a);
		cnt[a] ++;
	}

	if(cnt[0] == 2) {
		puts("0");
		return 0;
	}
	rep(i, 1, N) {
		if(cnt[i] != 0 && cnt[i] != 2) {
			puts("0");
			return 0;
		}
	}

	cout << pow_mod(2, N / 2) << endl;

	return 0;
}

提出情報

提出日時
問題 C - Lining Up
ユーザ leeson
言語 C++14 (GCC 5.4.1)
得点 300
コード長 1529 Byte
結果 AC
実行時間 8 ms
メモリ 640 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 300 / 300
結果
AC × 3
AC × 11
セット名 テストケース
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
ケース名 結果 実行時間 メモリ
sample_01.txt AC 2 ms 256 KiB
sample_02.txt AC 2 ms 256 KiB
sample_03.txt AC 2 ms 256 KiB
subtask_1_invalid_01.txt AC 7 ms 512 KiB
subtask_1_invalid_02.txt AC 3 ms 256 KiB
subtask_1_max_01.txt AC 8 ms 640 KiB
subtask_1_max_02.txt AC 8 ms 640 KiB
subtask_1_max_valid_01.txt AC 8 ms 640 KiB
subtask_1_max_valid_02.txt AC 8 ms 640 KiB
subtask_1_min_valid_01.txt AC 2 ms 256 KiB
subtask_1_rand_01.txt AC 6 ms 512 KiB
subtask_1_rand_02.txt AC 7 ms 640 KiB
subtask_1_valid_01.txt AC 5 ms 512 KiB
subtask_1_valid_02.txt AC 4 ms 384 KiB