样例没过,求助
查看原帖
样例没过,求助
598875
nikodo楼主2023/11/19 11:51
#include<bits/stdc++.h>
using namespace std;
int n;
int ans[15]={1000000000,1000000000,1000000000,1000000000,1000000000,1000000000,1000000000,1000000000,1000000000,1000000000,1000000000,1000000000,1000000000,1000000000,1000000000};
bool cmp(int a[]){
	for(int i=1;i<=n;i++)if(a[i]!=ans[i])return a[i]<ans[i];
	return 0;
}
int b[15];
void dfs(int d,int a[]){
	if(d>n){
		if(cmp(a))
			for(int i=1;i<=n;i++)ans[i]=a[i];
		return;
	}
	bool flag;
	for(int i=1;i<=a[1];i++){
		flag=0;
		b[1]=a[1]-i;
		for(int j=2;j<=d+1;j++){
			b[j]=a[j-1]-b[j-1];
			if(b[j]>9||b[j]<1){
				flag=1;
				break;
			}
		}
		if(!flag)
		dfs(d+1,b);
	}
	return;
}
int main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	int a[15];
	cin>>n>>a[1];
	dfs(1,a);
	for(int i=1;i<=n;i++)cout<<ans[i]<<' ';
	return 0;
}

输出了4个1000000000; 为啥没变???

2023/11/19 11:51
加载中...