秋祭 | 静岡高校工学部



卬高杯


提出詳細

提出id提出時刻ユーザー名問題言語判定状況判定実行時間
1149082023-10-24 12:58:55U_SIcpp25/25TLE267

#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