秋祭 | 静岡高校工学部



卬高杯


提出詳細

提出id提出時刻ユーザー名問題言語判定状況判定実行時間
1147852023-10-24 08:07:13n_o_n_o_nIcpp25/25AC182

#include<bits/stdc++.h>
using namespace std;
using ll = long long;
const ll mod = 127237991;
const ll M = 1e5;

ll N,A[1<<17],B[1<<17],C[1<<17],D[1<<17],E[1<<17];
ll AA[1<<17],BB[1<<17],CC[1<<17],DD[1<<17],EE[1<<17];

int main(){
    cin>>N;
    for(int i=0; i<N; i++)cin>>A[i];
    for(int i=0; i<N; i++)cin>>B[i];
    for(int i=0; i<N; i++)cin>>C[i];
    for(int i=0; i<N; i++)cin>>D[i];
    for(int i=0; i<N; i++)cin>>E[i];
    sort(A,A+N);
    sort(B,B+N);
    sort(C,C+N);
    sort(D,D+N);
    sort(E,E+N);
    for(int i=0; i<N; i++)AA[A[i]]+=1;
    for(int i=1; i<=M; i++)AA[i]+=AA[i-1],AA[i]%=mod;
    for(int i=0; i<N; i++)BB[B[i]]+=AA[B[i]-1];
    for(int i=1; i<=M; i++)BB[i]+=BB[i-1],BB[i]%=mod;
    for(int i=0; i<N; i++)CC[C[i]]+=BB[C[i]-1];
    for(int i=1; i<=M; i++)CC[i]+=CC[i-1],CC[i]%=mod;
    for(int i=0; i<N; i++)DD[D[i]]+=CC[D[i]-1];
    for(int i=1; i<=M; i++)DD[i]+=DD[i-1],DD[i]%=mod;
    ll ans=0;
    for(int i=0; i<N; i++)ans+=DD[E[i]-1],ans%=mod;
    cout << ans << endl;
}

sample1.txt AC 6
sample2.txt AC 7
sample3.txt AC 11
sample4.txt AC 12
sample5.txt AC 9
case1.txt AC 21
case2.txt AC 21
case3.txt AC 21
case4.txt AC 21
case5.txt AC 21
case6.txt AC 119
case7.txt AC 73
case8.txt AC 87
case9.txt AC 42
case10.txt AC 42
case11.txt AC 149
case12.txt AC 181
case13.txt AC 158
case14.txt AC 167
case15.txt AC 151
case16.txt AC 105
case17.txt AC 182
case18.txt AC 105
case19.txt AC 163
case20.txt AC 102
182 AC182 AC