三国游戏(贪心 & 排序)

三国游戏

利用贪心、排序、前缀和的计算方法,特别注意不要数据溢出了,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:

相关推荐
思考的笛卡尔1 小时前
密码学基础:RSA与AES算法的实现与对比
网络·算法·密码学
格林威7 小时前
常规线扫描镜头有哪些类型?能做什么?
人工智能·深度学习·数码相机·算法·计算机视觉·视觉检测·工业镜头
土丁爱吃大米饭8 小时前
千年游戏智慧:文化的密码
游戏·游戏设计·古代游戏·游戏中的文化·游戏文化
程序员莫小特9 小时前
老题新解|大整数加法
数据结构·c++·算法
过往入尘土10 小时前
服务端与客户端的简单链接
人工智能·python·算法·pycharm·大模型
zycoder.10 小时前
力扣面试经典150题day1第一题(lc88),第二题(lc27)
算法·leetcode·面试
蒙奇D索大10 小时前
【数据结构】考研数据结构核心考点:二叉排序树(BST)全方位详解与代码实现
数据结构·笔记·学习·考研·算法·改行学it
智驱力人工智能11 小时前
工厂抽烟检测系统 智能化安全管控新方案 加油站吸烟检测技术 吸烟行为智能监测
人工智能·算法·安全·边缘计算·抽烟检测算法·工厂抽烟检测系统·吸烟监测
程序员爱钓鱼11 小时前
Go语言实战案例——进阶与部署篇:编写Makefile自动构建Go项目
后端·算法·go
_Power_Y12 小时前
Java面试常用算法api速刷
java·算法·面试