卬高杯
提出id | 提出時刻 | ユーザー名 | 問題 | 言語 | 判定状況 | 判定 | 実行時間 |
---|---|---|---|---|---|---|---|
114908 | 2023-10-24 12:58:55 | U_S | I | cpp | 25/25 | TLE | 267 |
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
const int MOD = 127237991;
const int N = 5;
int n;
vector<vector<int>> a(N);
vector<vector<long long>> memo(N, vector<long long>(N));
vector<vector<bool>> visit(N, vector<bool>(N, false));
long long f(int x, int y) {
if (visit[x][y]) return memo[x][y];
if (x == N - 1) return 1;
int m = upper_bound(a[x + 1].begin(), a[x + 1].end(), a[x][y]) - a[x + 1].begin();
if (m == n) return 0;
long long cnt = 0;
for (int i = m; i < n; i++) {
cnt += f(x + 1, i);
cnt %= MOD;
}
memo[x][y] = cnt;
visit[x][y] = true;
return memo[x][y];
}
long long g(int x, int y) {
int m = upper_bound(a[x + 1].begin(), a[x + 1].end(), a[x][y]) - a[x + 1].begin();
if (m == n) return 0;
return memo[x + 1][m];
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(0);
cin >> n;
for (int i = 0; i < N; i++) {
a[i].resize(n);
for (int j = 0; j < n; j++) {
cin >> a[i][j];
}
sort(a[i].begin(), a[i].end());
}
long long ans = 0;
ans += f(0, 0) % MOD;
for (int i = 1; i < N; i++) {
for (int j = n - 1; j > 0; j--) {
memo[i][j - 1] += memo[i][j];
memo[i][j - 1] %= MOD;
}
}
for (int i = 1; i < n; i++) {
ans += g(0, i) % MOD;
}
cout << ans % MOD << endl;
return 0;
}
sample1.txt AC 2 sample2.txt AC 2 sample3.txt TLE 110 sample4.txt AC 2 sample5.txt AC 3 case1.txt TLE 89 case2.txt TLE 86 case3.txt TLE 86 case4.txt TLE 87 case5.txt TLE 86 case6.txt TLE 206 case7.txt TLE 180 case8.txt TLE 212 case9.txt TLE 142 case10.txt TLE 137 case11.txt TLE 228 case12.txt TLE 265 case13.txt TLE 216 case14.txt TLE 253 case15.txt TLE 235 case16.txt TLE 231 case17.txt TLE 267 case18.txt TLE 242 case19.txt TLE 245 case20.txt TLE 234 267 RE267 TLE
timeout: the monitored command dumped core Segmentation fault