Pagini recente » Cod sursa (job #3366610) | Statistici Alecu Vlad (AlecuVlad) | Cod sursa (job #3366612) | Cod sursa (job #3366474) | Cod sursa (job #3366614)
///sursa provizorie
#include <fstream>
using namespace std;
ifstream fin("dusman.in");
ofstream fout("dusman.out");
int n,ciclu,k,m,a,b,gasit=0;
int dusmani[1010][4];
int v[1001],f[1001];
int verif(int pas){
if(pas>1){
for(int i=1;i<=3;i++){
if(v[pas-1]==dusmani[v[pas]][i] ){
return 0;
}
}
return 1;
}else{
return 1;
}
}
void backtrack(int pas){
if(pas==n+1){
ciclu++;
if(ciclu==k){
for(int i=1;i<=n;i++){
fout<<v[i]<<" ";
}
gasit=1;
}
}else{
if(gasit==0){
for(int i=1;i<=n;i++){
if(f[i]==0){
v[pas]=i;
f[i]=1;
if(verif(pas)==1){
backtrack(pas+1);
}
f[i]=0;
}
}
}
}
}
int main()
{
fin>>n>>k>>m;
for(int i=1;i<=m;i++){
fin>>a>>b;
if(dusmani[a][1]==0){
dusmani[a][1]=b;
}else{
if(dusmani[a][1]!=0 && dusmani[a][2]==0){
dusmani[a][2]=b;
}else{
if(dusmani[a][2]!=0 && dusmani[a][3]==0){
dusmani[a][3]=b;
}
}
}
if(dusmani[b][1]==0){
dusmani[b][1]=a;
}else{
if(dusmani[b][1]!=0 && dusmani[b][2]==0){
dusmani[b][2]=a;
}else{
if(dusmani[b][2]!=0 && dusmani[b][3]==0){
dusmani[b][3]=a;
}
}
}
}
backtrack(1);
return 0;
}