神奇的东西
查看原帖
神奇的东西
910357
songzhihan2010楼主2024/4/11 19:51

两份代码,就是有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;
}




2024/4/11 19:51
加载中...