Submission #1369100


Source Code Expand

#include "bits/stdc++.h"
#include <regex>
#define _USE_MATH_DEFINES
#include <math.h>

using namespace std;

#ifndef _DEBUG
#define main_ main
#endif
#define FOR(i,s,e) for (int i = int(s); i < int(e); ++i)
#define REP(i,e) FOR(i,0,e)
#define INF (INT_MAX/2)
#define EPS (1.0e-8)
#define LINF (LONG_MAX/2)

typedef long long ll;
typedef unsigned long long ull;
typedef vector<int> vi;
typedef vector<vi> vvi;
typedef vector<ll> vl;
typedef vector<vl> vvl;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
typedef vector<bool> vb;
typedef vector<string> vs;

template <typename T>
using keyVal = pair<string, T>;
template<typename T>
bool val_greater(const keyVal<T>& left, const keyVal<T>& right) {
	return left.second > right.second;
}

vs split(string str, char sep) {
	vs v; stringstream ss(str); string t;
	while (getline(ss, t, sep)) v.push_back(t);
	return v;
}

void init_global() {}

const ll MOD = 1e9 + 7;

ll pow_mod(ll a, ll n, ll mod) {
	ll res = 1;
	while (n > 0) {
		if (n & 0x01) {
			res *= a;
			res %= mod;
		}
		a = a*a;
		a %= mod;
		n >>= 1;
	}
	return res;
}

int main_() {
	cin.tie(0);
	ios::sync_with_stdio(false);

	ll N; cin >> N;
	vi h(100004, 0);
	vl A(N+1); 
	FOR(i, 1, N + 1) {
		cin >> A[i];
		h[A[i]]++;
	}

	if (A[1] != 0 || h[0] > 1) {
		cout << 0 << endl;
		return 0;
	}

	ll ans = 1;
	FOR(i, 1, N) {
		ll t = h[i - 1];
		ll s = h[i];
		// pat1 = (2^t - 1)^s
		ll pat1 = pow_mod((pow_mod(2, t, MOD) - 1), s, MOD);
		// pat2 = 2^(sC2)
		ll pat2 = pow_mod(2, s*(s - 1) / 2, MOD);
		ans *= pat1;
		ans %= MOD;
		ans *= pat2;
		ans %= MOD;
	}

	cout << ans << endl;
	return 0;
}

Submission Info

Submission Time
Task B - 最短路問題
User apprec
Language C++14 (GCC 5.4.1)
Score 100
Code Size 1708 Byte
Status AC
Exec Time 11 ms
Memory 1408 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 100 / 100
Status
AC × 4
AC × 46
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt
All sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt, test_32.txt, test_33.txt, test_34.txt, test_35.txt, test_36.txt, test_37.txt, test_38.txt, test_39.txt, test_40.txt, test_41.txt, test_42.txt
Case Name Status Exec Time Memory
sample_01.txt AC 1 ms 640 KB
sample_02.txt AC 1 ms 640 KB
sample_03.txt AC 1 ms 640 KB
sample_04.txt AC 1 ms 640 KB
test_01.txt AC 1 ms 640 KB
test_02.txt AC 1 ms 640 KB
test_03.txt AC 1 ms 640 KB
test_04.txt AC 1 ms 640 KB
test_05.txt AC 1 ms 640 KB
test_06.txt AC 1 ms 640 KB
test_07.txt AC 1 ms 640 KB
test_08.txt AC 1 ms 640 KB
test_09.txt AC 1 ms 640 KB
test_10.txt AC 1 ms 640 KB
test_11.txt AC 8 ms 1408 KB
test_12.txt AC 8 ms 1408 KB
test_13.txt AC 8 ms 1408 KB
test_14.txt AC 8 ms 1408 KB
test_15.txt AC 8 ms 1408 KB
test_16.txt AC 8 ms 1408 KB
test_17.txt AC 8 ms 1408 KB
test_18.txt AC 8 ms 1408 KB
test_19.txt AC 8 ms 1408 KB
test_20.txt AC 9 ms 1408 KB
test_21.txt AC 8 ms 1408 KB
test_22.txt AC 9 ms 1408 KB
test_23.txt AC 9 ms 1408 KB
test_24.txt AC 9 ms 1408 KB
test_25.txt AC 11 ms 1408 KB
test_26.txt AC 10 ms 1408 KB
test_27.txt AC 10 ms 1408 KB
test_28.txt AC 11 ms 1408 KB
test_29.txt AC 9 ms 1408 KB
test_30.txt AC 8 ms 1408 KB
test_31.txt AC 1 ms 640 KB
test_32.txt AC 1 ms 640 KB
test_33.txt AC 1 ms 640 KB
test_34.txt AC 1 ms 640 KB
test_35.txt AC 1 ms 640 KB
test_36.txt AC 1 ms 640 KB
test_37.txt AC 1 ms 640 KB
test_38.txt AC 1 ms 640 KB
test_39.txt AC 1 ms 640 KB
test_40.txt AC 1 ms 640 KB
test_41.txt AC 1 ms 640 KB
test_42.txt AC 1 ms 640 KB