Pagini recente » Cod sursa (job #719975) | Cod sursa (job #2154736) | Cod sursa (job #397549) | Monitorul de evaluare | Cod sursa (job #772275)
Cod sursa(job #772275)
#include<fstream>
using namespace std;
int n,i,j,k;
char a[202][202];
short l[202][202];
int main()//creeaza un graf complet,orientat a.i. intre oricare 2 noduri exista un lant de lmax<=2
{
ifstream f("oras.in");ofstream g("oras.out");
f>>n;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
a[i][j]='0';
for(i=1;i<n;i++){ a[i][i+1]='1'; l[i][i+1]=1; l[i][i+2]=2; }
a[n][1]='1'; l[n][1]=1;l[n][2]=2;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(i!=j && !l[i][j])
if(a[j][i] && l[j][i]==1)
{
for(k=n;k>=1 && ((!l[k][j]==1 && !a[k][i]) || k==j );k--);
if(k && k!=i)
{
l[i][k]=1;
if(!l[i][j])l[i][j]=2;
a[i][k]='1';
}
}
else
{
if(l[i][j+1])
{
l[i][j]=2;
l[i][j-1]=1;
a[i][j-1]='1';
}
else
{
l[i][j]=1;
l[i][j+1]=2;
a[i][j]='1';
}
}
if(n==4){ g<<-1; return 0; }
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
g<<a[i][j];
g<<'\n';
}
f.close();g.close();
return 0;}