与第二篇题解相似(仅数组 -> vector)
#include<bits/stdc++.h>
using namespace std;
int ta,tb,tc,td,a,h,e;
int n,m,r;
int timea,timeb;
vector<int> palls,salls;
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
int x;
cin>>x;
palls.push_back(x);
}
sort(begin(palls),end(palls));
for(int i=1;i<=m;i++){
int x;
cin>>x;
salls.push_back(x);
}
sort(begin(salls),end(salls));
cin>>ta>>tb>>tc>>td>>a>>h>>e>>r;
vector<vector<int> > ex(m+1,vector<int>(n+1,0));
vector<vector<int> > oj(m+1,vector<int>(n+1,0));
timeb=(ta*n+r*tc)*100/a+h;
timea+=ta*n;
while(r--){
int p,s,sc;
cin>>p>>s>>sc;
p=lower_bound(begin(palls),end(palls),p)-begin(palls);
s=lower_bound(begin(salls),end(salls),s)-begin(salls);
if(e&&sc>ex[s][p]) ex[s][p]=sc,timea+=td;
++oj[s][p];
}
for(int i=1;i<=m;i++){
for(int j=1;j<=n;j++){
int t1=0,t2=ta;
t1+=tb*oj[i][j];
t2+=tc*oj[i][j];
timea+=min(t1,t2);
}
}
cout<<timea<<endl<<timeb<<endl<<(timea>timeb?"Use Luogu!":"Forget it...");
return 0;
}