社区讨论

求助

灌水区参与者 2已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@lwt0q13z
此快照首次捕获于
2024/05/30 16:53
2 年前
此快照最后确认于
2024/05/30 20:07
2 年前
查看原帖

[ABC251B] At Most 3 (Judge ver.)

题面翻译

nn 个数,最多选 33 个,总和正好凑到 ww 及以下的有几个。
Translated by _YXJS_\tt{\_YXJS\_}.

题目描述

おもり 11, おもり 22, \dots, おもり NNNN 個のおもりがあります。おもり ii の重さは AiA_i です。
以下の条件を満たす正整数 nn良い整数 と呼びます。
  • 3\bf{3} 個以下 の異なるおもりを自由に選んで、選んだおもりの重さの和を nn にすることができる。
WW 以下の正整数のうち、良い整数は何個ありますか?

输入格式

入力は以下の形式で標準入力から与えられる。
NN WW A1A_1 A2A_2 \dots ANA_N

输出格式

答えを出力せよ。

样例 #1

样例输入 #1

CPP
2 10
1 3

样例输出 #1

CPP
3

样例 #2

样例输入 #2

CPP
2 1
2 3

样例输出 #2

CPP
0

样例 #3

样例输入 #3

CPP
4 12
3 3 3 3

样例输出 #3

CPP
3

样例 #4

样例输入 #4

CPP
7 251
202 20 5 1 4 2 100

样例输出 #4

CPP
48

提示

制約

  • 1  N  3001\ \leq\ N\ \leq\ 300
  • 1  W  1061\ \leq\ W\ \leq\ 10^6
  • 1  Ai  1061\ \leq\ A_i\ \leq\ 10^6
  • 入力される値はすべて整数

Sample Explanation 1

おもり 11 のみを選ぶと重さの和は 11 になります。よって 11 は良い整数です。 おもり 22 のみを選ぶと重さの和は 33 になります。よって 33 は良い整数です。 おもり 11 とおもり 22 を選ぶと重さの和は 44 になります。よって 44 は良い整数です。 これら以外に良い整数は存在しません。また、1,3,41,3,4 のいずれも WW 以下の整数です。よって答えは 33 個になります。

Sample Explanation 2

WW 以下の良い整数は存在しません。

Sample Explanation 3

良い整数は 3,6,93,6,933 個です。 たとえばおもり 11, おもり 22, おもり 33 を選ぶと重さの和は 99 になるので、99 は良い整数です。 1212 は良い整数 **ではない** ことに注意してください。
CPP
#include<bits/stdc++.h>
using namespace std;
unsigned long long n,a[1000000],w,cnt;
int main(){
	cin>>n>>w;
	for(int i=0;i<n;i++) cin>>a[i];
	sort(a,a+n);
	for(int i=0;i<n;i++){
		if(a[i]<=w) cnt++;
		
	}
	for(int i=0;i<n-1;i++){
		if(a[i]+a[i+1]<=w) cnt++;
		
	}
	for(int i=0;i<n-2;i++){
		if(a[i]+a[i+1]+a[i+2]<=w) cnt++;
		
	}
	cout<<cnt;
}
这么写为什么不对啊

回复

2 条回复,欢迎继续交流。

正在加载回复...