卬高杯
提出id | 提出時刻 | ユーザー名 | 問題 | 言語 | 判定状況 | 判定 | 実行時間 |
---|---|---|---|---|---|---|---|
114926 | 2023-10-24 15:33:21 | chihi | I | cpp | 25/25 | AC | 488 |
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int main() {
int N;cin>>N;
vector<int> A(N),B(N),C(N),D(N),E(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.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> R(N,1),R2(N,1);
for(int i=1;i<N;i++){
R2[i]+=R2[i-1];
R2[i]%= 127237991;
}
R=R2;
for(int i=0;i<N;i++){
if(lower_bound(A.begin(),A.end(),B[i])-A.begin()==0)R2[i]=0;
else{R2[i]=R[lower_bound(A.begin(),A.end(),B[i])-A.begin()-1];}}
R=R2;
for(int i=1;i<N;i++){
R[i]+=R[i-1];
R[i]%= 127237991;
}
for(int i=0;i<N;i++){
if(lower_bound(B.begin(),B.end(),C[i])-B.begin()==0)R2[i]=0;
else{R2[i]=R[lower_bound(B.begin(),B.end(),C[i])-B.begin()-1];}}
R=R2;
R=R2;
for(int i=1;i<N;i++){
R[i]+=R[i-1];
R[i]%= 127237991;
}
for(int i=0;i<N;i++){
if(lower_bound(C.begin(),C.end(),D[i])-C.begin()==0)R2[i]=0;
else{R2[i]=R[lower_bound(C.begin(),C.end(),D[i])-C.begin()-1];}}
R=R2;
for(int i=1;i<N;i++){
R[i]+=R[i-1];
R[i]%= 127237991;
}
for(int i=0;i<N;i++){
if(lower_bound(D.begin(),D.end(),E[i])-D.begin()==0)R2[i]=0;
else{R2[i]=R[lower_bound(D.begin(),D.end(),E[i])-D.begin()-1];}}
R=R2;
for(int i=1;i<N;i++){
R[i]+=R[i-1];
R[i]%= 127237991;
}
cout << R[N-1] << endl;
}
sample1.txt AC 2 sample2.txt AC 2 sample3.txt AC 4 sample4.txt AC 6 sample5.txt AC 6 case1.txt AC 7 case2.txt AC 6 case3.txt AC 7 case4.txt AC 7 case5.txt AC 7 case6.txt AC 237 case7.txt AC 181 case8.txt AC 222 case9.txt AC 94 case10.txt AC 89 case11.txt AC 390 case12.txt AC 484 case13.txt AC 348 case14.txt AC 444 case15.txt AC 394 case16.txt AC 282 case17.txt AC 488 case18.txt AC 263 case19.txt AC 431 case20.txt AC 261 488 AC488 AC