攻城(这是打比赛以来挖的最多的一次)

C-攻城_第十九届同济大学程序设计竞赛暨高校网络友谊赛 (nowcoder.com)

链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网
 

题目描述

Rolnan城有 n(0≤n≤105)n(0\leq n \leq 10^5)n(0≤n≤105) 个堡垒,每个堡垒有生命值 hi(1≤hi≤109)h_i(1\leq h_i \leq 10^9)hi​(1≤hi​≤109),当堡垒的生命值变为0,它将被摧毁,LiuGod可以使用魔法打击这些堡垒。

LiuGod的每次魔法可以对任意一个堡垒造成1点伤害;特别的,由于LiuGod很崇拜 `clearlove7` ,他的每第 7 次魔法(7/14/21/...)会对所有的堡垒造成1点伤害。

现在LiuGod为了彻底打击Rolnan,决定要在最后一次打击中一次性全部摧毁Rolnan城的堡垒,现在他想询问能不能完成。

注意,每次打击都必须完成;同时要保证每个堡垒只在最后一次打击中被摧毁。

输入描述:

第一行一个整数 T(1≤T≤103)T(1\leq T\leq 10^3)T(1≤T≤103),表示数据组数。

接下来每组数据,第一行一个整数 nnn,接下来一行 nnn 个整数表示 h1,h2,…,hnh_1,h_2,\dots,h_nh1​,h2​,…,hn​。

保证 ∑n≤106\sum n\leq 10^6∑n≤106。

输出描述:

对于每组数据,输出"YES"或"NO",表示能否达到LiuGod的要求。

示例1

输入

复制3 3 3 2 4 4 1 1 1 1 3 10 1 7

3
3
3 2 4
4
1 1 1 1
3
10 1 7

输出

复制YES NO NO

YES
NO
NO

备注:

n=0视为直接完成了任务

@@@@@@@@@****************

刚看题目的时候觉得很简单,但是前面wa的八次感觉都没有理解好题,一直都和七想到一起,对七整除和取模,后面看了题解之后,原来不是,是这样的,因为遇到是七的整除的数,.可以按一整个轮回求,每一轮就是(n+6),只要最后的总和是(n+6)的倍数,并且最小的那个数大于减去的总次数就就可以了,但是要n是0或1的时候要特判,要记得初始化

********************@@@@@@@@

#include <iostream>
#include <algorithm>
using namespace std;
typedef long long ll;
const int N=1e5+10;
ll a[N];
ll n,b,t;
ll sum;
int main(){
	int i;
	scanf("%lld",&t);
	while(t--)
	{
		ll m=2e9;
		scanf("%lld",&n);
		sum=0;
		for(i=1;i<=n;i++)
		{
			scanf("%lld",&a[i]);
			sum=sum+a[i];
			m=min(m,a[i]);
		}
		if(n<=1)
		{
			puts("YES");
			continue;
		}
		if(sum%(n+6)==0&&m>=sum/(n+6)) puts("YES");
		else puts("NO");
	}
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值