Submission #1841609


Source Code Expand

#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
#include <cmath>
#include <queue>
#include <map>
#include <unordered_map>
#include <set>
#include <functional>
using namespace std;

typedef long long ll;

vector<ll> fact(100005), fact_inv(100005);
vector<int> appear(100005, 0);
int l, r;
ll mod = 1e9 + 7;

ll func(ll n, ll p) {
	if (p == 1) return n;
	ll res = func(n, p / 2);
	res *= res;
	res %= mod;
	if (p % 2 == 1) return (res*n)%mod;
	return res;
}

int main() {
	int n; cin >> n;
	ll f = 1;
	fact[0] = fact_inv[0] = 1;
	for (int i = 1; i <= n + 1; ++i) {
		f *= i;
		f %= mod;
		fact.at(i) = f;
		fact_inv.at(i) = func(f, mod - 2);
	}


	for (int i = 1; i <= n; ++i) {
		int a; cin >> a;
		if (appear.at(a) != 0) {
			l = appear.at(a) - 1;
			r = n + 1 - i;
		}
		appear.at(a) = i;
	}

	cout << n << endl;
	for (int k = 2; k <= n; ++k) {
		ll ans = ((fact.at(n + 1) * fact_inv.at(k))%mod * fact_inv.at(n + 1 - k)) % mod;
		if (l + r >= k - 1) ans = (ans + mod - ((fact[l + r] * fact_inv[k - 1]) % mod * fact_inv[l + r - k + 1]) % mod) % mod;
		cout << ans << endl;
	}
	cout << 1 << endl;

	return 0;
}

Submission Info

Submission Time
Task C - pushpush
User yoshnary
Language C++14 (GCC 5.4.1)
Score 0
Code Size 1196 Byte
Status RE
Exec Time 192 ms
Memory 2560 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 300
Status
WA × 3
RE × 1
WA × 3
RE × 9
Set Name Test Cases
Sample sample1.txt, sample2.txt, sample3.txt, sample4.txt
All even_0.txt, even_1.txt, even_2.txt, even_3.txt, odd_0.txt, odd_1.txt, odd_2.txt, odd_3.txt, sample1.txt, sample2.txt, sample3.txt, sample4.txt
Case Name Status Exec Time Memory
even_0.txt RE 192 ms 2560 KB
even_1.txt RE 173 ms 2176 KB
even_2.txt RE 174 ms 2176 KB
even_3.txt RE 174 ms 2176 KB
odd_0.txt RE 176 ms 2176 KB
odd_1.txt RE 186 ms 2176 KB
odd_2.txt RE 177 ms 2176 KB
odd_3.txt RE 179 ms 2176 KB
sample1.txt WA 3 ms 2176 KB
sample2.txt WA 3 ms 2176 KB
sample3.txt RE 103 ms 2176 KB
sample4.txt WA 3 ms 2176 KB