Pagini recente » Cod sursa (job #1742984) | Cod sursa (job #2583104) | Cod sursa (job #2063299) | Cod sursa (job #2709434) | Cod sursa (job #1896200)
#include <iostream>
#include <algorithm>
using namespace std;
int st[101],n,k,v[101];
void show()
{
for(int i=1;i<=n;i++)
out<<st[i]<<" ";
out<<'\n';
}
int cmmdc(int a,int b)
{
int r;
while(b)
{
r=a%b;
a=b;
b=r
}
return a;
}
bool valid(int k)
{
for(int i=1;i<k;++i)
if(st[i]==st[k])
return false;
if(k>1)
if(cmmdc(v[st[k]],st[k+1])==1) return true;
return false;
}
int backtr(int k)
{
if(k==n+1)
show();
else
{
for(int i=1;i<=n;++i)
{
st[k]=j;
if(valid(k))
backtr(k+1);
}
}
}
int main()
{
in>>n;
for(int i=1;i<=n;i++)
in>>v[i];
sort(v+1,v+n+1);
backtr(1);
return 0;
}