Hack数据!!!
查看原帖
Hack数据!!!
1047961
lxl2012楼主2024/12/2 21:07
#include<iostream>
#include<cstring>
const int N = 1e2;
const int maxn = 2e7 + 10;
int n,a[N],m,f[maxn],k;
int getnum(){
	char ch = getchar();
	int f = 1,ans = 0;
	while(ch < '0' || ch > '9'){
		if(ch == '-') f *= -1;
		ch = getchar();
	}
	while(ch <= '9' && ch >= '0') ans = (ans << 1) + (ans << 3) + ch - '0',ch = getchar();
	return ans * f;
}

void out(int n){
	if(n < 0) putchar('-'),n *= -1;
	if(n > 9) out(n / 10);
	putchar(n % 10 + '0');
}
void in(int &n){
	n = getnum();
}
void in(int nums[],int n){
	for(int i = 0;i < n;i ++){
		nums[i] = getnum();
	}
}
int main(){
	in(k);
	in(n);
	in(a + 1,n);
	memset(f,0x3f,sizeof(f));
	f[0] = 0;
	for(int i = 1;i <= n;i ++){
		for(int j = a[i];j < maxn;j ++){
			f[j] = std::min(f[j],f[j - a[i]] + 1);
		}
	}
	for(int i = 1;i < maxn;i ++){
		if(f[i] <= k && f[i - 1] > k){
			out(i);
			putchar('\n');
			return 0;
		}
	}
	puts("0\n");
	return 0;
}

这个代码样例没过。 我结果减了2得了76分

2024/12/2 21:07
加载中...