秋祭 | 静岡高校工学部



卬高杯


提出詳細

提出id提出時刻ユーザー名問題言語判定状況判定実行時間
1147912023-10-24 08:08:26hiikunZIcpp25/25AC371

#include <bits/stdc++.h>
using namespace std;
using ll = long long int;
const ll MAX = 1e18;
const ll MOD = 127237991;
int main(){
    ll N;
    cin >> N;
    vector<ll> A(N),B(N),C(N),D(N),E(N);
    for(ll i = 0;i < N;i++) cin >> A[i];
    for(ll i = 0;i < N;i++) cin >> B[i];
    for(ll i = 0;i < N;i++) cin >> C[i];
    for(ll i = 0;i < N;i++) cin >> D[i];
    for(ll i = 0;i < N;i++) cin >> E[i];
    sort(A.begin(),A.end());
    sort(B.begin(),B.end());
    sort(C.begin(),C.end());
    sort(D.begin(),D.end());
    sort(E.begin(),E.end());
    vector<ll> TA(N + 1),TB(N + 1),TC(N + 1),TD(N + 1),TE(N + 1);
    for(ll i = 0;i <= N;i++) TA[i] = i;
    for(ll i = 0;i < N;i++){
        ll cnt = lower_bound(A.begin(),A.end(),B[i]) - A.begin();
        TB[i + 1] = (TB[i] + TA[cnt]) % MOD; 
    }
    for(ll i = 0;i < N;i++){
        ll cnt = lower_bound(B.begin(),B.end(),C[i]) - B.begin();
        TC[i + 1] = (TC[i] + TB[cnt]) % MOD; 
    }
    for(ll i = 0;i < N;i++){
        ll cnt = lower_bound(C.begin(),C.end(),D[i]) - C.begin();
        TD[i + 1] = (TD[i] + TC[cnt]) % MOD; 
    }
    for(ll i = 0;i < N;i++){
        ll cnt = lower_bound(D.begin(),D.end(),E[i]) - D.begin();
        TE[i + 1] = (TE[i] + TD[cnt]) % MOD; 
    }
    cout << TE[N] << endl;
}

sample1.txt AC 2
sample2.txt AC 2
sample3.txt AC 4
sample4.txt AC 7
sample5.txt AC 7
case1.txt AC 8
case2.txt AC 7
case3.txt AC 7
case4.txt AC 8
case5.txt AC 7
case6.txt AC 191
case7.txt AC 138
case8.txt AC 168
case9.txt AC 73
case10.txt AC 71
case11.txt AC 295
case12.txt AC 368
case13.txt AC 266
case14.txt AC 336
case15.txt AC 302
case16.txt AC 206
case17.txt AC 371
case18.txt AC 201
case19.txt AC 328
case20.txt AC 200
371 AC371 AC