什么情况,不用 long long 就不对,排序优化反而费时间?蜜汁尴尬
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const long long maxn=2*1e5+5;
struct node{long long x,y;}a[maxn];
long long c[maxn],d[maxn];
bool cmp(node a,node b)
{
if(a.y==b.y)
return a.x<b.x;
return a.y<b.y;
}
int main()
{
long long x,s,m,n,k,i;
long long res;
scanf("%I64d%I64d%I64d",&n,&m,&k);
scanf("%I64d%I64d",&x,&s);
for(i=1;i<=m;i++)
scanf("%I64d",&a[i].x);
for(i=1;i<=m;i++)
scanf("%I64d",&a[i].y);
for(i=1;i<=k;i++)
scanf("%I64d",&c[i]);
for(i=1;i<=k;i++)
scanf("%I64d",&d[i]);
res=(n-c[upper_bound(d+1,d+k+1,s)-1-d])*x;
//sort(a+1,a+m+1,cmp);
for(i=1;i<=m;i++)
{
if(a[i].y>s)
continue;
res=min(res,(long long)(n-c[upper_bound(d+1,d+k+1,s-a[i].y)-1-d])*a[i].x);
}
printf("%I64d\n",res);
return 0;
}