站外题求助!!!
  • 板块题目总版
  • 楼主Mr_Pang
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/2/27 20:21
  • 上次更新2024/2/27 22:04:23
查看原帖
站外题求助!!!
1125683
Mr_Pang楼主2024/2/27 20:21

小蓝正在玩一款游戏。游戏中魏(X)、蜀(Y)、吴(Z)三个 国家各自拥有一定数量的士兵X,Y,Z(一开始可以认为 都为0)。游戏有n个可能会发生的事件,每个事件之间 相互犭虫立且最多只会发生一次,当第i个事件发生时会分 别让X,Y,Z增加Ai,Bi,Ci。 当游戏结束时(所有事件的发生与否已经确定),如果X,Y,Z的其中一个大于另夕卜两个之和,我们认为其获 胜。例如,当X>Y+Z时,我们认为魏国获胜。小蓝 想知道游戏结束时如果有其中一个国家获胜,最多发生了 多少个事件?如果不存在任何能让某国获胜的情况,请输出-1 输入格式 输入的第一行包含一个整数 第二行包含n个整数表示Ai,相邻整数之间使用一个空格 分隔。 第三行包含n个整数表示Bi,相邻整数之间使用一个空格 分隔。 第四行包含n个整数表示Ci ,相邻整数之间使用一个空格 分隔```cpp

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+9;
int n;
int A[N],B[N],C[N],w[N];
int judge(int x[],int y[],int z[])//求使x获胜的最多事件
{
	int idex=0;
	for(int i=1;i<=n;i++)
	{
		w[i]=x[i]-y[i]-z[i];
	}
	sort(w+1,w+1+n,greater<int>());//降序排列
	long long int sum=0;
	for(int i=1;i<=n;i++)
	{
		sum+=w[i];
		if(sum>0)
			idex=i;
		else
			break;
	}
	return idex;
}
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
		cin>>A[i];
	for(int i=1;i<=n;i++)
		cin>>B[i];
	for(int i=1;i<=n;i++)
		cin>>C[i];
	int ans=0;
	ans=max(judge(A,B,C),judge(B,A,C),judge(C,A,B));
	cout<<ans;
	return 0;
}

我这里总报错[错误] '__comp' cannot be used as a function和In instantiation of 'constexpr const _Tp& std::max(const _Tp&, const _Tp&, _Compare) [with _Tp = int; _Compare = int]':,是max函数哪里写错了吗

2024/2/27 20:21
加载中...