三国游戏(贪心 & 排序)

三国游戏

利用贪心、排序、前缀和的计算方法,特别注意不要数据溢出了,sum 加long long

bash 复制代码
s[i] = x[i]-y[i]-z[i]

输入:

bash 复制代码
3
1 2 2
2 3 2
1 0 7

输出:

bash 复制代码
2
cpp 复制代码
#include <bits/stdc++.h>
using namespace std;

const int N = 1e5+100;

typedef long long ll;

bool cmp(int x,int y)
{
	return x>y;
}

int a[N],b[N],c[N];
int s[N];
int n;

int get_ans(int x[],int y[],int z[])
{
	int ans = 0;
	ll sum = 0;
	
	//memset(s,0,sizeof(s));
	
	for(int i=1;i<=n;i++)
	{
		s[i] = x[i]-y[i]-z[i];
	}
	
	sort(s+1,s+n+1,cmp);
	  
	for(int i=1;i<=n;i++)
	{
		sum+=s[i];
		if(sum>0) ans++;
        else break;
	}
	
	if(ans == 0) return -1;
	return ans;
}

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_a = get_ans(a,b,c);
	int ans_b = get_ans(b,a,c);
	int ans_c = get_ans(c,a,b);
	
	int ans = max(ans_a,max(ans_b,ans_c));
	
	printf("%d\n",ans);
		
	return 0;
}

Debug:

相关推荐
Dream it possible!2 小时前
LeetCode 面试经典 150_多维动态规划_交错字符串(97_C++_中等)
算法·leetcode·面试·动态规划
心抵鹊3 小时前
算法之双指针系列(一)
算法·leetcode
十二3 小时前
【洛谷题解】P1083 [NOIP 2012 提高组] 借教室(二分答案 + 差分)
数据结构·c++·算法·蓝桥杯
小此方4 小时前
[算法实战论:动态规划]回文串问题的dp解法,回文串问题的母题,以及以此为基础的派生题
算法·动态规划
java_logo4 小时前
Docker 部署 EmulatorJS:轻松搭建浏览器复古游戏平台
游戏·docker·容器·复古游戏·轩辕镜像·emulatorjs·红白机
Pniubi5 小时前
力扣560.和为k的子数组
算法·leetcode·职场和发展
D e re k ZH5 小时前
C++ 从零入门(一):基础语法与程序结构
数据结构·c++·算法
Pniubi5 小时前
力扣438.找到字符串中所有字母异位词
算法·leetcode·职场和发展
東隅已逝,桑榆非晚8 小时前
算法6. 双指针法-查找总价格为目标的两个商品
c++·学习·算法
Eyfcom8 小时前
〖物联网终端实战 01〗UWB 室内高精度定位:仓储 AGV 与人员的厘米级轨迹追踪
物联网·算法·物流系统·快递系统·跨境物流快递系统·物联网终端实战