Codeforces Round #197 (Div. 2) : C
哎....这次的比赛被安叔骂的好惨!
不行呢,要虐回来;
这道搜索,老是写错,蛋疼啊!
果然是基础没打好!
1 #include<cstdio> 2 using namespace std; 3 int ans[1009],m; 4 bool h[11],flag=true; 5 6 void dfs(int n,int ch,int x) 7 { 8 if(n>m) 9 { 10 flag=false; 11 printf("YES\n"); 12 for(int i=0; i<n; ++i) 13 printf(" %d",ans[i]); 14 printf("\n"); 15 return; 16 } 17 for(int i=ch+1; flag&&i<=10; ++i) 18 if(h[i]&&i!=x) 19 { 20 ans[n]=i; 21 dfs(n+1,i-ch,i); 22 } 23 } 24 int main() 25 { 26 char c; 27 for(int i=1; i<11; ++i) 28 { 29 scanf("%c",&c); 30 if(c=='1')h[i]=true; 31 } 32 scanf("%d",&m); 33 --m; 34 dfs(0,0,0); 35 if(flag)printf("NO\n"); 36 }