QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#143428 | #4658. 移除石子 | hos_lyric | 100 ✓ | 792ms | 133612kb | C++14 | 13.4kb | 2023-08-21 11:29:55 | 2023-08-21 11:29:56 |
Judging History
answer
#include <cassert>
#include <cmath>
#include <cstdint>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <bitset>
#include <complex>
#include <deque>
#include <functional>
#include <iostream>
#include <limits>
#include <map>
#include <numeric>
#include <queue>
#include <set>
#include <sstream>
#include <string>
#include <unordered_map>
#include <unordered_set>
#include <utility>
#include <vector>
using namespace std;
using Int = long long;
template <class T1, class T2> ostream &operator<<(ostream &os, const pair<T1, T2> &a) { return os << "(" << a.first << ", " << a.second << ")"; };
template <class T> ostream &operator<<(ostream &os, const vector<T> &as) { const int sz = as.size(); os << "["; for (int i = 0; i < sz; ++i) { if (i >= 256) { os << ", ..."; break; } if (i > 0) { os << ", "; } os << as[i]; } return os << "]"; }
template <class T> void pv(T a, T b) { for (T i = a; i != b; ++i) cerr << *i << " "; cerr << endl; }
template <class T> bool chmin(T &t, const T &f) { if (t > f) { t = f; return true; } return false; }
template <class T> bool chmax(T &t, const T &f) { if (t < f) { t = f; return true; } return false; }
////////////////////////////////////////////////////////////////////////////////
template <unsigned M_> struct ModInt {
static constexpr unsigned M = M_;
unsigned x;
constexpr ModInt() : x(0U) {}
constexpr ModInt(unsigned x_) : x(x_ % M) {}
constexpr ModInt(unsigned long long x_) : x(x_ % M) {}
constexpr ModInt(int x_) : x(((x_ %= static_cast<int>(M)) < 0) ? (x_ + static_cast<int>(M)) : x_) {}
constexpr ModInt(long long x_) : x(((x_ %= static_cast<long long>(M)) < 0) ? (x_ + static_cast<long long>(M)) : x_) {}
ModInt &operator+=(const ModInt &a) { x = ((x += a.x) >= M) ? (x - M) : x; return *this; }
ModInt &operator-=(const ModInt &a) { x = ((x -= a.x) >= M) ? (x + M) : x; return *this; }
ModInt &operator*=(const ModInt &a) { x = (static_cast<unsigned long long>(x) * a.x) % M; return *this; }
ModInt &operator/=(const ModInt &a) { return (*this *= a.inv()); }
ModInt pow(long long e) const {
if (e < 0) return inv().pow(-e);
ModInt a = *this, b = 1U; for (; e; e >>= 1) { if (e & 1) b *= a; a *= a; } return b;
}
ModInt inv() const {
unsigned a = M, b = x; int y = 0, z = 1;
for (; b; ) { const unsigned q = a / b; const unsigned c = a - q * b; a = b; b = c; const int w = y - static_cast<int>(q) * z; y = z; z = w; }
assert(a == 1U); return ModInt(y);
}
ModInt operator+() const { return *this; }
ModInt operator-() const { ModInt a; a.x = x ? (M - x) : 0U; return a; }
ModInt operator+(const ModInt &a) const { return (ModInt(*this) += a); }
ModInt operator-(const ModInt &a) const { return (ModInt(*this) -= a); }
ModInt operator*(const ModInt &a) const { return (ModInt(*this) *= a); }
ModInt operator/(const ModInt &a) const { return (ModInt(*this) /= a); }
template <class T> friend ModInt operator+(T a, const ModInt &b) { return (ModInt(a) += b); }
template <class T> friend ModInt operator-(T a, const ModInt &b) { return (ModInt(a) -= b); }
template <class T> friend ModInt operator*(T a, const ModInt &b) { return (ModInt(a) *= b); }
template <class T> friend ModInt operator/(T a, const ModInt &b) { return (ModInt(a) /= b); }
explicit operator bool() const { return x; }
bool operator==(const ModInt &a) const { return (x == a.x); }
bool operator!=(const ModInt &a) const { return (x != a.x); }
friend std::ostream &operator<<(std::ostream &os, const ModInt &a) { return os << a.x; }
};
////////////////////////////////////////////////////////////////////////////////
constexpr unsigned MO = 1000000007;
using Mint = ModInt<MO>;
// Dfa::ac can be any int.
// Nfa::ac is cast to bool.
// n: number of states
// s: initial state
// a: alphabet size
struct Dfa {
int n, s, a;
vector<vector<int>> to;
vector<int> ac;
Dfa() : n(0), s(-1), a(0), nn(-1) {}
Dfa(int n_, int s_, int a_) : n(n_), s(s_), a(a_), to(n, vector<int>(a, -1)), ac(n, 0), nn(-1) {}
int addState(int acu = 0) {
const int u = n++;
to.emplace_back(a, -1);
ac.push_back(acu);
return u;
}
vector<vector<vector<int>>> from;
int nn;
vector<int> ids;
vector<vector<int>> uss;
Dfa minimize() {
assert(0 <= s); assert(s < n);
for (int u = 0; u < n; ++u) for (int e = 0; e < a; ++e) assert(~to[u][e]);
// BFS to find reachable states
int queLen = 0;
vector<int> que(n);
ids.assign(n, -1);
ids[que[queLen++] = s] = -2;
for (int j = 0; j < queLen; ++j) {
const int u = que[j];
for (int e = 0; e < a; ++e) if (!~ids[to[u][e]]) ids[que[queLen++] = to[u][e]] = -2;
}
// reverse transitions
from.assign(n, vector<vector<int>>(a));
for (int u = 0; u < n; ++u) if (~ids[u]) {
for (int e = 0; e < a; ++e) from[to[u][e]][e].push_back(u);
}
// separate by ac
vector<int> acs;
for (int u = 0; u < n; ++u) if (~ids[u]) acs.push_back(ac[u]);
std::sort(acs.begin(), acs.end());
acs.erase(std::unique(acs.begin(), acs.end()), acs.end());
nn = acs.size();
// uss as queue
uss.assign(n, {});
for (int u = 0; u < n; ++u) if (~ids[u]) uss[std::lower_bound(acs.begin(), acs.end(), ac[u]) - acs.begin()].push_back(u);
int xm = 0;
for (int x = 1; x < nn; ++x) if (uss[xm].size() < uss[x].size()) xm = x;
uss[0].swap(uss[xm]);
for (int x = 0; x < nn; ++x) for (const int u : uss[x]) ids[u] = x;
// (reused)
vector<int> parting(n, 0), app(n, 0);
for (int x = 1; x < nn; ++x) {
// partition by reachability to uss[x]
for (const int u : uss[x]) parting[u] = 1;
for (int e = 0; e < a; ++e) {
vector<int> ys;
for (const int u : uss[x]) for (const int v : from[u][e]) {
const int y = ids[v];
if (!app[y]) {
app[y] = 1;
ys.push_back(y);
}
}
for (const int y : ys) {
vector<int> vss[2];
for (const int v : uss[y]) vss[parting[to[v][e]]].push_back(v);
if (!vss[0].empty()) {
if (vss[0].size() < vss[1].size()) vss[0].swap(vss[1]);
const int z = nn++;
for (const int v : vss[1]) ids[v] = z;
uss[y].swap(vss[0]);
uss[z].swap(vss[1]);
}
}
for (const int y : ys) app[y] = 0;
}
for (const int u : uss[x]) parting[u] = 0;
}
uss.resize(nn);
// to make the output unique
std::sort(uss.begin(), uss.end());
for (int x = 0; x < nn; ++x) {
std::sort(uss[x].begin(), uss[x].end());
for (const int u : uss[x]) ids[u] = x;
}
// make new DFA
Dfa dfa(nn, ids[s], a);
for (int x = 0; x < nn; ++x) {
const int u = uss[x][0];
for (int e = 0; e < a; ++e) dfa.to[x][e] = ids[to[u][e]];
dfa.ac[x] = ac[u];
}
return dfa;
}
};
// Checks if reachable parts are isomorphic.
bool isIsomorphic(const Dfa &dfa0, const Dfa &dfa1) {
if (dfa0.a != dfa1.a) return false;
const int a = dfa0.a;
vector<int> f01(dfa0.n, -1);
vector<int> f10(dfa1.n, -1);
int queLen = 0;
vector<int> que0(dfa0.n);
vector<int> que1(dfa1.n);
f10[f01[dfa0.s] = dfa1.s] = dfa0.s;
que0[queLen] = dfa0.s;
que1[queLen] = dfa1.s;
++queLen;
for (int j = 0; j < queLen; ++j) {
const int u0 = que0[j];
const int u1 = que1[j];
for (int e = 0; e < a; ++e) {
const int v0 = dfa0.to[u0][e];
const int v1 = dfa1.to[u1][e];
if (!~f01[v0] && !~f10[v1]) {
f10[f01[v0] = v1] = v0;
que0[queLen] = v0;
que1[queLen] = v1;
++queLen;
} else {
if (!~f01[v0]) return false;
if (!~f10[v1]) return false;
if (f10[f01[v0]] != v0) return false;
if (f01[f10[v1]] != v1) return false;
}
}
}
for (int u0 = 0; u0 < dfa0.n; ++u0) if (~f01[u0] && dfa0.ac[u0] != dfa1.ac[f01[u0]]) return false;
return true;
}
// n: number of states
// s: initial state
// a: alphabet size
struct Nfa {
int n, s, a;
vector<vector<vector<int>>> to;
vector<vector<int>> eps;
vector<int> ac;
Nfa() : n(0), s(-1), a(0) {}
Nfa(int n_, int s_, int a_) : n(n_), s(s_), a(a_), to(n, vector<vector<int>>(a)), eps(n), ac(n, 0) {}
int addState(int acu) {
const int u = n++;
to.emplace_back(a);
eps.emplace_back();
ac.push_back(acu);
return u;
}
Dfa toDfa() const {
// BFS for eps transitions
vector<int> que(n);
vector<int> vis(n, -1);
vector<vector<int>> epsed(n);
for (int u = 0; u < n; ++u) {
int queLen = 0;
vis[que[queLen++] = u] = u;
for (int j = 0; j < queLen; ++j) {
const int v = que[j];
for (const int w : eps[v]) if (vis[w] != u) vis[que[queLen++] = w] = u;
}
epsed[u] = vector<int>(que.begin(), que.begin() + queLen);
std::sort(epsed[u].begin(), epsed[u].end());
}
// uss as queue
vector<vector<int>> uss;
map<vector<int>, int> ids;
uss.push_back(epsed[s]);
ids[epsed[s]] = 0;
Dfa dfa(1, 0, a);
for (int x = 0; x < dfa.n; ++x) {
for (int e = 0; e < a; ++e) {
vector<int> ws;
for (const int u : uss[x]) for (const int v : to[u][e]) ws.insert(ws.end(), epsed[v].begin(), epsed[v].end());
std::sort(ws.begin(), ws.end());
ws.erase(std::unique(ws.begin(), ws.end()), ws.end());
auto it = ids.find(ws);
if (it != ids.end()) {
dfa.to[x][e] = it->second;
} else {
uss.push_back(ws);
const int y = dfa.addState();
ids[ws] = dfa.to[x][e] = y;
}
}
}
// cast ac to bool
for (int x = 0; x < dfa.n; ++x) for (const int u : uss[x]) if (ac[u]) dfa.ac[x] = 1;
return dfa;
}
};
////////////////////////////////////////////////////////////////////////////////
int N, K;
vector<int> L, R;
Mint dp[1010][2010];
int main() {
/*
state
# length 1: [0, C1)
# length 2: [0, C2)
# length >= 3: [0, C3)
*/
constexpr int C1 = 3;
constexpr int C2 = 3;
constexpr int C3 = 6;
constexpr int A = 14;
Nfa nfa(C1 * C2 * C3, 0, A);
for (int c1 = 0; c1 < C1; ++c1) for (int c2 = 0; c2 < C2; ++c2) for (int c3 = 0; c3 < C3; ++c3) {
const int u = (c1 * C2 + c2) * C3 + c3;
nfa.ac[u] = (c1 == 0 && c2 == 0) ? 1 : 0;
for (int a = 0; a < nfa.a; ++a) {
for (int d0 = 0; d0 < C1; ++d0) for (int d3 = 0; d3 <= c3; ++d3) {
const int remain = a - (d0 + c1 + c2 + d3);
if (remain == 0 || remain >= 2) {
if (d0 < C1 && c1 < C2 && c2 + d3 < C3) {
const int v = (d0 * C2 + c1) * C3 + (c2 + d3);
nfa.to[u][a].push_back(v);
}
}
}
}
}
const Dfa dfa = nfa.toDfa().minimize();
cerr<<"dfa.n = "<<dfa.n<<endl;
constexpr int B = 4;
for (int u = 0; u < dfa.n; ++u) {
for (int a = B; a < dfa.a; ++a) {
assert(dfa.to[u][B] == dfa.to[u][a]);
}
}
// DP: min k to add
constexpr int MAX_K = 100;
Dfa DFA(0, 0, B + 1);
map<vector<int>, int> ids;
vector<vector<int>> seqs;
seqs.emplace_back(dfa.n, MAX_K + 1);
seqs[0][dfa.s] = 0;
ids[seqs[0]] = DFA.addState();
for (int x = 0; x < DFA.n; ++x) {
for (int a = 0; a <= B; ++a) {
vector<int> seq(dfa.n, MAX_K + 1);
for (int u = 0; u < dfa.n; ++u) {
for (int dk = 0; a + dk <= B; ++dk) {
const int v = dfa.to[u][a + dk];
chmin(seq[v], seqs[x][u] + dk);
}
}
auto it = ids.find(seq);
if (it != ids.end()) {
DFA.to[x][a] = it->second;
} else {
const int y = DFA.addState();
DFA.to[x][a] = y;
ids[seq] = y;
seqs.push_back(seq);
}
}
}
cerr<<"DFA.n = "<<DFA.n<<endl;
for (int x = 0; x < DFA.n; ++x) {
DFA.ac[x] = MAX_K + 1;
for (int u = 0; u < dfa.n; ++u) if (dfa.ac[u]) {
chmin(DFA.ac[x], seqs[x][u]);
}
}
DFA = DFA.minimize();
cerr<<"DFA.n = "<<DFA.n<<endl;
for (int numCases; ~scanf("%d", &numCases); ) { for (int caseId = 1; caseId <= numCases; ++caseId) {
scanf("%d%d", &N, &K);
L.resize(N);
R.resize(N);
for (int i = 0; i < N; ++i) {
scanf("%d%d", &L[i], &R[i]);
}
cerr<<"N = "<<N<<", K = "<<K;
if(N<=5)cerr<<", L = "<<L<<", R = "<<R;
cerr<<endl;
memset(dp, 0, sizeof(dp));
dp[0][DFA.s] = 1;
for (int i = 0; i < N; ++i) {
for (int x = 0; x < DFA.n; ++x) {
for (int a = 0; a < B; ++a) if (L[i] <= a && a <= R[i]) {
dp[i + 1][DFA.to[x][a]] += dp[i][x];
}
if (B <= R[i]) {
dp[i + 1][DFA.to[x][B]] += dp[i][x] * (R[i] - max(B, L[i]) + 1);
}
}
}
Mint ans = 0;
for (int x = 0; x < DFA.n; ++x) if (DFA.ac[x] <= K) {
ans += dp[N][x];
}
// bad to minimize k
if (K == 1) {
if ([&]() -> bool {
for (int i = 0; i < N; ++i) if (!(L[i] <= 0 && 0 <= R[i])) return false;
return true;
}()) {
ans -= 1;
}
if ([&]() -> bool {
if (!(N == 3)) return false;
for (int i = 0; i < N; ++i) if (!(L[i] <= 1 && 1 <= R[i])) return false;
return true;
}()) {
ans -= 1;
}
}
printf("%u\n", ans.x);
}
#ifndef LOCAL
break;
#endif
}
return 0;
}
这程序好像有点Bug,我给组数据试试?
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 5
Accepted
time: 684ms
memory: 133500kb
input:
10 5 2 1 3 0 5 1 4 0 1 1 2 5 0 0 3 0 1 0 3 0 2 1 1 5 0 1 2 1 3 3 3 3 4 0 0 5 1 1 1 0 4 3 4 0 4 0 4 5 0 1 1 1 5 0 5 0 1 1 4 5 2 3 4 2 4 0 3 1 3 0 1 5 2 1 4 0 4 0 4 1 2 0 1 5 0 0 4 0 5 0 2 3 4 1 1 3 1 0 5 0 4 0 4 3 1 1 5 1 4 1 4
output:
288 20 10 246 138 144 400 99 148 79
result:
ok 10 numbers
Test #2:
score: 5
Accepted
time: 686ms
memory: 133568kb
input:
10 5 0 0 0 1 4 2 4 1 4 0 3 5 0 1 4 1 5 4 5 0 4 3 4 5 0 1 4 0 3 0 2 3 5 1 2 5 1 1 2 0 4 1 3 1 4 2 4 5 0 0 5 0 1 0 1 0 1 1 2 5 0 1 3 0 3 1 2 1 5 2 3 5 1 0 5 1 5 0 4 0 1 0 3 5 0 1 3 1 3 1 5 1 4 1 4 3 1 0 4 0 1 0 5 3 1 1 3 1 5 1 2
output:
155 392 167 359 26 165 1182 646 58 29
result:
ok 10 numbers
Test #3:
score: 5
Accepted
time: 677ms
memory: 133612kb
input:
10 5 2 0 5 0 3 0 3 1 4 2 4 5 0 1 3 1 4 0 1 4 4 1 5 5 1 0 3 0 5 1 1 1 2 2 4 5 0 1 5 1 4 1 4 1 3 3 4 5 0 1 2 1 4 3 4 1 3 0 4 5 2 1 3 1 3 0 5 1 5 3 3 5 2 0 5 0 4 1 3 1 4 2 3 5 0 0 3 1 1 1 1 0 2 1 2 3 1 0 4 0 4 0 5 3 1 1 3 1 4 1 3
output:
1152 77 144 450 224 270 720 12 148 35
result:
ok 10 numbers
Test #4:
score: 5
Accepted
time: 739ms
memory: 133492kb
input:
10 1000 0 1 1 4 4 5 5 0 0 2 2 1 1 810768785 810768785 4 4 3 3 2 2 3 3 145678201 145678201 539852093 539852093 3 3 824112952 824112952 3 3 929791266 929791266 3 3 3 3 3 3 0 0 2 2 4 4 4 4 3 3 194646042 194646042 2 2 4 4 3 3 922195284 922195284 676532270 676532270 3 3 3 3 3 3 2 2 5 5 0 0 749247771 7492...
output:
0 1 0 0 1 1 0 0 1 1
result:
ok 10 numbers
Test #5:
score: 5
Accepted
time: 746ms
memory: 133504kb
input:
10 1000 0 6 6 1 1 4 4 2 2 560230659 560230659 2 2 213604931 213604931 4 4 324411778 324411778 5 5 5 5 0 0 68050744 68050744 5 5 1 1 363300583 363300583 2 2 2 2 4 4 957157567 957157567 6 6 3 3 1 1 3 3 2 2 4 4 4 4 4 4 6 6 2 2 0 0 5 5 404555679 404555679 3 3 2 2 1 1 6 6 2 2 4 4 6 6 891397980 891397980 ...
output:
0 0 0 1 1 0 0 1 1 1
result:
ok 10 numbers
Test #6:
score: 5
Accepted
time: 689ms
memory: 133604kb
input:
10 1000 69 1 1 1 1 4 4 2 2 1 1 4 4 2 2 1 1 4 4 1 1 0 0 0 0 0 0 0 0 2 2 3 3 1 1 2 2 3 3 3 3 0 0 4 4 3 3 1 1 0 0 2 2 80216297 80216297 1 1 2 2 367878274 367878274 174533945 174533945 746703557 746703557 2 2 245782009 245782009 4 4 0 0 3 3 2 2 0 0 4 4 3 3 1 1 3 3 2 2 2 2 0 0 0 0 114241517 114241517 0 0...
output:
1 0 0 1 1 0 1 1 0 0
result:
ok 10 numbers
Test #7:
score: 5
Accepted
time: 694ms
memory: 133544kb
input:
10 1000 65 3 3 3 3 1 1 3 3 1 1 2 2 2 2 2 2 0 0 1 1 0 0 0 0 3 3 4 4 373336720 373336720 1 1 1 1 4 4 1 1 2 2 1 1 2 2 0 0 4 4 1 1 1 1 1 1 0 0 1 1 1 1 0 0 252809300 252809300 707166173 707166173 1 1 960759336 960759336 2 2 2 2 0 0 3 3 0 0 3 3 0 0 4 4 0 0 1 1 2 2 2 2 1 1 1 1 0 0 780478034 780478034 0 0 4...
output:
1 0 0 1 0 0 1 1 0 0
result:
ok 10 numbers
Test #8:
score: 5
Accepted
time: 703ms
memory: 133600kb
input:
10 1000 48 0 0 1 1 2 2 13941343 13941343 2 2 2 2 0 0 265685928 265685928 0 0 1 1 1 1 3060608 3060608 2 2 0 0 0 0 0 0 1 1 15129724 15129724 0 0 4 4 1 1 297040447 297040447 1 1 3 3 0 0 2 2 1 1 4 4 2 2 1 1 0 0 934313429 934313429 1 1 1 1 1 1 0 0 0 0 1 1 686872027 686872027 1 1 1 1 352017933 352017933 0...
output:
1 0 0 1 1 1 0 0 0 0
result:
ok 10 numbers
Test #9:
score: 5
Accepted
time: 740ms
memory: 133588kb
input:
10 1000 0 1 3 0 367881929 0 908183395 0 294640584 0 130052878 0 460518566 0 380428363 1 6 0 617579265 1 855387669 0 2 0 2 0 4 0 730594613 2 275854270 0 1 0 4 0 5 0 151804972 0 567677095 0 479119369 0 665035693 0 3 0 1 0 1 0 3 0 985093649 0 1 0 255818414 0 4 0 1 0 163849171 0 525071507 3 823579180 0 ...
output:
173378122 136961982 916142335 254618610 127210945 688422027 194757687 199396796 90178999 86533905
result:
ok 10 numbers
Test #10:
score: 5
Accepted
time: 751ms
memory: 133596kb
input:
10 1000 0 0 220657533 0 490453431 0 663241659 0 3 0 5 0 417978574 4 7 0 641068595 0 1 0 4 0 132285008 0 788406229 0 139937681 0 3 0 969737879 3 444383529 1 443896824 0 836047684 2 3 0 3 1 420847062 0 663834045 0 2 0 578231941 0 5 0 1 0 604459134 0 4 0 955346381 0 360957147 4 525140508 0 3 1 15822405...
output:
222237218 898759263 640639324 538187759 29656948 29843021 97600405 189219923 850973942 765846801
result:
ok 10 numbers
Test #11:
score: 5
Accepted
time: 750ms
memory: 133560kb
input:
10 1000 0 2 678511582 0 154994295 0 5 2 6 0 1 1 2 0 4 0 196232388 0 1 0 3 0 13247534 0 5 7093249 957022507 1 4 0 906064888 1 2 0 5 1 4 0 256766734 0 636905132 0 370094191 0 2 0 117006010 0 4 0 59582976 1 634540188 0 4 0 677905036 0 5 0 400766826 1 5 3 8 0 665083613 0 4 0 5 0 2 0 730308274 0 89231895...
output:
179406276 724899518 957139040 561017296 993781901 7394650 851299544 397397425 256338857 375918555
result:
ok 10 numbers
Test #12:
score: 5
Accepted
time: 760ms
memory: 133552kb
input:
10 1000 0 0 3 0 5 1 3 0 2 0 377151268 0 4 0 434362897 1 962769308 0 89047812 1 136192105 0 441748730 0 237192940 1 465698860 0 42439355 1 5829347 349949910 802921919 2 5 0 3 1 2 0 390569672 1 607009222 0 512482679 0 416439678 0 3 0 912993280 0 3 3 340960525 0 1 0 688478781 0 5 0 1 1 4 0 712235930 0 ...
output:
319258319 704077987 334372886 88970718 825618506 89533635 834045134 197952117 262319440 924373409
result:
ok 10 numbers
Test #13:
score: 5
Accepted
time: 746ms
memory: 133560kb
input:
10 1000 0 0 1 0 4 0 4 0 2 0 3 4 8 1 809130801 0 187920166 0 2 0 3 0 254674697 0 649121331 0 197259413 0 192443143 0 917579552 0 49799772 1 302721613 0 723809824 0 4 0 932825140 1 2 1 4 0 1 0 939720825 0 1 0 652682854 0 292912959 0 426026563 0 969801845 1 3 0 3 0 4 882209199 882209204 0 379900439 0 2...
output:
108367557 582756296 340002669 368867033 956907932 609145813 884525075 197867228 497772463 543026922
result:
ok 10 numbers
Test #14:
score: 5
Accepted
time: 749ms
memory: 133596kb
input:
10 1000 47 0 6 0 7 0 6 1 1 0 8 2 9 1 7 0 8 0 7 3 5 0 7 0 4 0 10 0 6 0 6 0 10 0 7 1 1 0 10 0 1 0 7 1 8 0 10 1 2 0 9 0 7 0 1 1 10 0 3 0 7 0 9 0 2 0 9 0 0 0 9 0 7 0 7 1 2 0 0 1 6 0 9 0 6 0 6 1 2 0 2 0 1 1 6 0 10 1 10 0 9 3 6 0 6 0 7 1 9 0 8 0 10 1 1 1 10 0 0 0 8 0 3 0 6 0 4 0 0 0 9 0 6 0 10 0 9 1 8 0 1...
output:
738316084 851375644 215922397 796061309 613737649 625134896 763030167 895156394 390 629
result:
ok 10 numbers
Test #15:
score: 5
Accepted
time: 790ms
memory: 133520kb
input:
10 1000 99 1 10 0 9 0 8 0 10 1 6 0 7 0 9 1 10 0 6 0 7 0 7 0 9 0 8 0 3 0 9 1 4 0 6 0 9 0 9 0 7 0 10 1 8 1 6 0 6 0 8 0 6 0 9 1 1 0 4 0 0 0 0 0 0 0 1 0 6 0 2 1 7 0 9 0 3 0 7 1 6 0 10 0 9 0 10 1 10 0 3 1 9 0 7 0 10 0 7 0 1 0 0 0 10 0 10 1 9 0 7 1 10 0 6 0 2 0 6 0 8 0 6 1 10 0 7 0 6 0 9 0 10 0 5 0 6 1 10...
output:
733982136 102430704 60640349 118024157 199614437 344227954 456030385 641753587 439 47
result:
ok 10 numbers
Test #16:
score: 5
Accepted
time: 775ms
memory: 133540kb
input:
10 1000 94 0 27082101 1 2 0 5 0 182284057 0 2 0 854596927 0 486081504 0 1 4 212942070 2 4 0 4 0 5 0 2 0 937988325 0 839634252 259385372 259385374 0 3 1 520768268 0 3 0 609270333 0 838621534 0 384090136 1 3 0 667788367 0 389605576 0 992710428 0 960391094 0 1 2 658423697 1 2 0 273159245 0 4 4 31114796...
output:
870680517 115603606 316557289 9766681 341971672 699464798 673647918 579459822 470969116 513966924
result:
ok 10 numbers
Test #17:
score: 5
Accepted
time: 772ms
memory: 133596kb
input:
10 1000 99 1 558836520 0 4 0 3 0 534121003 0 5 0 264739171 0 379370191 0 4 0 100490264 0 2 0 3 1 619605387 0 2 0 3 0 5 4 5 1 294486083 1 2 3 990787247 0 1 1 256196937 0 3 0 2 0 166482225 0 5 0 1 0 5 0 109407731 0 4 0 5 0 3 0 180703250 0 3 0 129133161 0 5 2 7 0 264096332 0 1 0 5 0 726281357 0 1762581...
output:
607861904 949464630 310737889 901015114 63397672 78280034 546669719 323568666 599807376 682628680
result:
ok 10 numbers
Test #18:
score: 5
Accepted
time: 792ms
memory: 133572kb
input:
10 1000 100 0 3 0 1 1 6 740414081 740414084 1 357189447 1 743739464 0 4 0 1 0 5 0 1 0 30073625 0 4 0 2 0 542888320 0 514884644 1 3 1 305222417 0 386325593 0 1 0 3 1 157562404 0 366404826 0 4 0 3 1 619491195 0 5 0 196255155 1 4 1 4 3 8 2 3 1 6 0 5 0 3 0 5 0 1 0 5 0 642145333 0 2 0 181627666 0 2 0 820...
output:
4422166 693621079 976753856 661121801 145391180 904105062 226347471 501222662 228465436 73571647
result:
ok 10 numbers
Test #19:
score: 5
Accepted
time: 752ms
memory: 133596kb
input:
10 1000 55 0 364881620 0 1 0 851413241 1 4 4 700024576 0 876649436 0 357726767 0 404571776 1 2223463 0 817905335 1 2 0 5 0 4 0 4 0 3 0 847654812 0 3 0 361081695 0 4 0 850218128 0 5 1 4 0 390585804 0 741480334 0 5 0 469714353 0 2 3 7042948 0 427747116 0 2 0 1 0 2 0 2 0 2 0 732348976 0 206547221 0 915...
output:
129875514 536209979 184299929 663086436 741463676 512639422 296588360 884058530 90713199 112286467
result:
ok 10 numbers
Test #20:
score: 5
Accepted
time: 773ms
memory: 133600kb
input:
10 1000 99 0 4 0 579831503 0 2 1 21069180 0 124983788 0 4 0 356520474 1 211150192 0 4 0 204201013 0 247203842 0 4 1 6 1 3 1 2 3 7 0 3 1 760511272 0 5 4 7 2 5 0 1 1 946697431 0 3 0 689207096 0 1 1 4 1 3 1 3 0 549119893 3 6 1 5 0 2 0 2 1 536582539 1 6 0 282097774 1 6 0 942901239 0 2 0 5 0 777338255 0 ...
output:
237399696 903617229 705682333 31063859 490067931 459932342 46423067 801059201 35316932 780708950
result:
ok 10 numbers
Extra Test:
score: 0
Extra Test Passed