有点不能理解,为啥一个WA,一个AC
查看原帖
有点不能理解,为啥一个WA,一个AC
229218
最萌軒宇楼主2022/10/23 19:04

AC:

#include <iostream>
using namespace std;
int n, l, r, ans=0;
int a[55], w[55];
void dfs(int pos) {
	int sum = 0;
	for(int i = 1; i <= pos - 1; i++) {
		if(a[i]!=0)
			sum+=a[i] * w[i];
	}
	if(sum>r) return;
	if(pos == n + 1) {
		if(sum<=r && sum>=l)
			ans++;
		return;
	}
	for(int i = 0; i <= 1; i++) {
		a[pos]=i;
		dfs(pos+1);
	}
}
int main() {
	cin >> n >> l >> r;
	for(int i = 1; i <= n; i++)
		cin >> w[i];
	dfs(1);
	cout << ans << endl;
	return 0;
}

WA:

#include <cstdio>
using namespace std;
int n, l, r, ans = 0;
int a[55], w[55];
void dfs(int pos) {
	int sum = 0;
	for(int i = 1; i <= pos - 1; i++) {
		if(a[i] != 0) {
			sum +=a[i] * w[i];
		}
	}
	if(sum > r) {
		return;
	}
	if(pos == n + 1) {
		if(sum <= r && sum >= 1) {
			ans++;
		}
		return;
	}
	for(int i = 0; i <= 1; i++) {
		a[pos] = i;
		dfs(pos + 1);
	}
}
int main() {
	scanf("%d%d%d", &n, &l, &r);
	for(int i = 1; i <= n; i++) {
		scanf("%d", &w[i]);
	}
	dfs(1);
	printf("%d\n", ans);
	return 0;
}
2022/10/23 19:04
加载中...