求助555
  • 板块题目总版
  • 楼主Weizhuo_Zhao
  • 当前回复3
  • 已保存回复3
  • 发布时间2023/7/31 08:55
  • 上次更新2023/11/3 06:49:13
查看原帖
求助555
681558
Weizhuo_Zhao楼主2023/7/31 08:55

kettle

题目描述

有 nn 个容量无穷大的水壶,它们从 1∼n1\sim n 编号,初始时 ii 号水壶中装有 AiA_i 单位的水。

你可以进行不超过 kk 次操作,每次操作需要选择一个满足 1≤x≤n−11\le x\le n-1 的编号 xx,然后把 xx 号水壶中的水全部倒入 x+1x+1 号水壶中。

最后你可以任意选择恰好一个水壶,并喝掉水壶中所有的水。现在请你求出,你最多能喝到多少单位的水。

输入格式

第一行一个正整数 nn,表示水壶的个数。

第二行一个非负整数 kk,表示操作次数上限。

第三行 nn 个非负整数,相邻两个数用空格隔开,表示水壶的初始装水量 A1A_1, A2A_2, ⋯\cdots, AnA_n。

输出格式

一行,仅一个非负整数,表示答案。

样例 #1

样例输入 #1

10
5
890 965 256 419 296 987 45 676 976 742

样例输出 #1

3813

提示

数据规模与约定

  • 对于 10%10\% 的数据,保证 n≤10n \leq 10。
  • 对于 30%30\% 的数据,保证 n≤100n \leq 100。
  • 对于 50%50\% 的数据,保证 n≤103n \leq 10^3。
  • 对于 70%70\% 的数据,保证 n≤105n \leq 10^5。
  • 对于 100%100\% 的数据,保证 1≤n≤1061\leq n\leq 10^6,0≤k≤n−10\leq k \leq n-1,0≤Ai≤1030\le A_i\le 10^3。
    代码:
#include<bits/stdc++.h>
using namespace std;
long long n,k,a[1000000],ans=-1,z;
int main(){
//	freopen("kettle.in","r",stdin);
//	freopen("kettle.out","w",stdout);
	scanf("%lld%lld",&n,&k);
	k++;
	for(int i=1;i<=n;i++){
		scanf("%lld",&a[i]);
	}
	for(int i=1;i<=n-k;i++){
		z=0;
//		cout<<i<<' '<<i+k<<'-';
		for(int j=i;j<=i+k-1;j++){
			z+=a[j];
 //		 	cout<<z<<' ';
		}
		cout<<'\n';
//		cout<<z<<'\n';
		ans=max(z,ans);
	}
	printf("%lld",ans);
//	fclose(stdin);
//	fclose(stdout);
	return 0;
}

这样发的原因:团队题目

2023/7/31 08:55
加载中...