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

小蓝正在玩一款游戏。游戏中魏(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());//降序排列 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:18
加载中...