読者です 読者をやめる 読者になる 読者になる

誤読

文字通りくそコード

ARC044-B 最短路問題

こういう組み合わせやるのがね、すごい不安
SRM(そんなに経験ないけど)で組み合わせや!っていってDPではいみたいのがよくあるので、自信をもってできない
修練が必要
スライドだとテーブル創る云々いってるけどmodpowでポウって感じでよゆう

signed main() {
	int n;
	scanf("%d", &n);
	map<int,int> num;
	int Max = 0;
	REP(i, n) {
		int a;
		scnaf("%d", &a);
		num[a]++;
		Max = max(Max, a);
		if (!i && a != 0) {
			printf("0\n");
			return 0;
		}
	}
	if (num[0] != 1) {
		printf("0\n");
		return 0;
	}
 
	ll ans = 1;
	rep (i, 1, Max+1) {
		ll cur = num[i];
		ll bef = num[i - 1];
 
		ans *= mod_pow(mod_pow(2, bef,MODU)-1,cur,MODU);
		ans %= MODU;
		ans *= mod_pow(2, cur*(cur - 1)/2, MODU);
 
		ans %= MODU;
	}
 
	printf("%lld\n", ans);
	return 0;
}