Cod sursa(job #239476)
Utilizator | Data | 4 ianuarie 2009 21:04:21 | |
---|---|---|---|
Problema | Tablete | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 2.33 kb |
#include<stdio.h>
int i,k,este[1000],a[1000][1000],p,last=1,aux,mut;
int main ()
{este[0]=1;
int n,m;
freopen("tablete.in","r",stdin);
freopen("tablete.out","w",stdout);
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
for(k=1;k<=n;k++)
{for(p=1;p<=n*n;p++)
if(este[p]==0 && p>a[i][k-1])
{ if(k!=m)
{
/* if(k==n && i>1)
{aux=a[i-1][n];
a[i-1][n]=p;
a[i][k]=aux;
este[p]=1;
break;
}
else*/
{
este[p]=1;
a[i][k]=p;
break;}
}
else
if(p%2==0)
{
este[p]=1;
a[i][k]=p;
break;
}}
}
for(i=1;i<=n*n;i++)
if(este[i]==0)
{ p=i;
break;
}
/* for(i=n;i>=1;i--)
for(k=n-1;k>=1;k--)
{ printf("%d %d\n",i,k);
if(p<a[i][k+1] && p>a[i][k-1])// && a[i][k]>a[n][n-1])
{a[n][n]=a[i][k];
a[i][k]=p;
for(i=1;i<=n;i++)
{ for(k=1;k<=n;k++)
printf("%d ", a[i][k]);
printf("\n");
}return 0;
}
else
printf("nu %d %d\n",i,k);
}
// for(i=1;i<=1000;i++)
/// printf("%d",este[p]);
*/i=a[n-1][n];
a[n-1][n]=p;
for(k=n;k>=1;k--)
{
if(a[n][k-1]<i && a[n][k+1]>i)
{
a[n][k+1]=a[n][k];
a[n][k]=i;
break;
}
else a[n][k+1]=a[n][k];
}
for(i=1;i<=n;i++)
{ for(k=1;k<=n;k++)
printf("%d ", a[i][k]);
printf("\n");
}
return 0;
}