codevs 2928 你缺什么

来源:互联网 发布:班徽设计软件 编辑:程序博客网 时间:2024/05/16 18:49

读完题后基本就能确定深度优先搜索了。。

剩下的细节自己填补即可。

#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <algorithm>using namespace std;int N;int ans[10000+2],x[10000+2];bool flag[10000+2];void DFS(int n){if(n>N){printf("%d",ans[1]);for(int i=2;i<=N;++i)printf(" %d",ans[i]);printf("\n");exit(0);}else{for(int i=1;i<=N;++i){if(!flag[i] && x[ans[n-1]]!=x[i]){ans[n]=i;flag[i]=true;DFS(n+1);flag[i]=false;}}}}int main() {scanf("%d",&N);for(int i=1;i<=N;++i)scanf("%d",x+i);DFS(1);return 0;}