提交时间:2023-10-28 10:55:43

运行 ID: 107817

#include<iostream> #include<vector> using namespace std; int a,u,c[50]; vector<int> b[50],d; bool s=0; void aa(int x) { if(x==a) { for(int y=0;y<a;y++) for(int z=0;z<b[y+1].size();z++) if(c[y]==c[b[y+1][z]-1]) return; for(int y=0;y<a;y++) cout<<c[y]<<" "; s=1; return; } for(int y=1;y<=4;y++) { c[x]=y; aa(x+1); } } int main() { cin>>a; while(cin>>u) d.push_back(u); int e=a; for(int y=d.size()-1;y>=0;y--) { if(y!=d[y]) b[y].push_back(d[y]); else y--; } aa(0); return 0; }