说好的不开long long见祖宗呢?int36分long long8分
  • 板块P9228 原神
  • 楼主Lqz114514
  • 当前回复7
  • 已保存回复7
  • 发布时间2023/5/7 15:04
  • 上次更新2023/11/18 17:02:54
查看原帖
说好的不开long long见祖宗呢?int36分long long8分
519936
Lqz114514楼主2023/5/7 15:04

36分如下

#include <bits/stdc++.h>
using namespace std;
const int N=1e6+10;
int fire[N],ice[N];
bool cmp(int a,int b)
{
	return a>b;
}
int main()
 {
	int n,m,k,tot;
	long long ans;
	cin>>n>>m>>k;
	for(int i=0;i<n;i++)
	{
		cin>>fire[i];
		ans+=fire[i];//至少能打出基本伤害 
	}	
	for(int i=0;i<m;i++)
	{
		cin>>ice[i];
		ans+=ice[i];
	}
	sort(fire,fire+n,cmp);//将火元素伤害从大到小排序
	for(int i=0;i<min(n,m);i++)//遍历到任一元素伤害耗尽为止 
	{
		if(fire[i]>k)//增量为fire[i]或k,看谁更大 
		{
			ans+=fire[i];
			tot++;//统计利用规则二的次数 
		}
	}
	ans+=k*(min(n,m)-tot);//剩下能利用规则三的全部利用
	cout<<ans; 
}
2023/5/7 15:04
加载中...