两份代码,就是有28行不一样,一个WA#4,一个AC(下面的)
//write by szh
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
ll _;
ll A[7],p[7];
ll sum,num;
ll read()
{
ll x=0,f=1;char ch=getchar();
while (ch<'0'||ch>'9'){if (ch=='-') f=-1;ch=getchar();}
while (ch>='0'&&ch<='9'){x=x*10+ch-48;ch=getchar();}
return x*f;
}
signed main(){
_=read();
while(_--){
sum=0,num=0;
for (int i=1;i<=5;i++) A[i]=read(),sum+=A[i],num+=A[i]*i;
for (int i=1;i<=5;i++) p[i]=read();
if(num>=3*sum){
printf("0\n");
continue;
}
num=2*A[1]+A[2];
ll a=p[4]*2,b=p[5];
num-=A[4]-2*A[5];
if(num%2==0){
printf("%lld\n",num/2*min(a,b));
} else {
printf("%lld\n",num/2*min(a,b)+min(p[4],p[5]));
}
}
return 0;
}
和
//write by szh
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
ll _;
ll A[7],p[7];
ll sum,num;
ll read()
{
ll x=0,f=1;char ch=getchar();
while (ch<'0'||ch>'9'){if (ch=='-') f=-1;ch=getchar();}
while (ch>='0'&&ch<='9'){x=x*10+ch-48;ch=getchar();}
return x*f;
}
signed main(){
_=read();
while(_--){
sum=0,num=0;
for (int i=1;i<=5;i++) A[i]=read(),sum+=A[i],num+=A[i]*i;
for (int i=1;i<=5;i++) p[i]=read();
if(num>=3*sum){
printf("0\n");
continue;
}
num=2*A[1]+A[2];
ll a=p[4]*2,b=p[5];
num=num-A[4]-2*A[5];
if(num%2==0){
printf("%lld\n",num/2*min(a,b));
} else {
printf("%lld\n",num/2*min(a,b)+min(p[4],p[5]));
}
}
return 0;
}