样例没过,求debug
查看原帖
样例没过,求debug
598875
nikodo楼主2023/11/19 11:54
#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];
bool tc=0;
void dfs(int d,int a[]){
	if(d>n){
		if(cmp(a)){
			for(int i=1;i<=n;i++)ans[i]=a[i];
			tc=1;
		}
		return;
	}
	bool flag;
	for(int i=1;i<=a[1];i++){
		if(tc)return;
		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个10^9。。。

为啥ans没变???

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