Pagini recente » Cod sursa (job #2885317) | Cod sursa (job #2681515) | Cod sursa (job #1992129) | Cod sursa (job #1358488) | Cod sursa (job #298003)
Cod sursa(job #298003)
/*#include <fstream>
#include <iostream>
using namespace std;
int n,nr,nt=0,c[9];
void GenComb(int k);
void prelucrare();
int main()
{
ifstream f("triang.in");
f>>n;
f.close();
int i;
nr=n-3;
struct diagonale
{
int a;
int b;
} d[45];
for (i=1;i<=nr;i++)
{
d[++nt].a=1;
d[nt].b=i+2;
}
while (nr)
{
for (i=n-nr+1;i<=n;i++)
{
d[++nt].a=n-nr-1;
d[nt].b=i;
}
nr--;
}
for (i=1;i<=nt;i++)
cout<<d[i].a<<" "<<d[i].b<<endl;
cout<<endl;
GenComb(1);
return 0;
}
void GenComb (int k)
{
if (k-1==nr)
prelucrare();
else
for (int i=c[k-1]+1;i<=nt-nr+k; i++)
{
c[k]=i;
GenComb(k+1);
}
}
void prelucrare()
{
for (int i=1;i<=nr;i++)
cout<<c[i]<<" ";
cout<<endl;
}*/
// 90 puncte --> n=11 crapa timpu :-<
#include<fstream.h>
int n,k=0,st[15],ds[50],df[50],a[50][50];
ofstream fout("triang.out");
void bkt(int l)
{
int i,i2,j,flag;
if(l==n-3)
{
flag=0;
for(i=1;i<=n-4;i++)
for(j=i+1;j<=n-3;j++)
if(a[st[i]][st[j]]!=1)
{flag=1;break;}
if(!flag)
{
for(i=1;i<=n-3;i++)
fout<<ds[st[i]]<<" "<<df[st[i]]<<" ";
fout<<"\n";
}
}
else
for(i=st[l]+1;i<=k;i++)
{
/* int flag2=1;
for(i2=1;i2<l&&flag2==1;i2++)
for (j=i+1;j<=l&&flag2==1;j++)
if(!a[st[i2]][st[j]]) flag2=0;
if(flag2)*/
{
st[l+1]=i;
bkt(l+1);
}
}
}
int main()
{
ifstream fin("triang.in");
int i,j;
//fin>>n;
n=5;
fin.close();
if(n<3)
fout<<0;
if(n==3)fout<<1;
if(n>3)
{
for(i=3;i<=n-1;i++)
{ds[++k]=1;df[k]=i;}
for(i=2;i<=n-2;i++)
for(j=i+2;j<=n;j++)
{ds[++k]=i;df[k]=j;}
memset(a,0,sizeof(a));
for(i=1;i<k;i++)
for(j=i+1;j<=k;j++)
{
if((ds[i]>ds[j] && ds[i]<df[j] || df[i]>ds[j] && df[i]<df[j]) && ds[i]!=ds[j] && df[i]!=df[j] && ds[i]!=df[j] && ds[j]!=df[i])
a[i][j]=0;
else
a[i][j]=1;
}
switch(n){
case 4: fout<<"2 \n";break;
case 5: fout<<"5 \n";break;
case 6: fout<<"14 \n";break;
case 7: fout<<"42 \n";break;
case 8: fout<<"132 \n";break;
case 9: fout<<"429 \n";break;
case 10: fout<<"1430 \n";break;
case 11: fout<<"4862 \n";break; }
bkt(0);
}
return 0;
}