Cod sursa(job #2029586)
Utilizator | Data | 30 septembrie 2017 11:49:15 | |
---|---|---|---|
Problema | Tablete | Scor | 30 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 1.54 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("tablete.in");
ofstream g("tablete.out");
int n, k, fr[1000000], a[1000][1000];
int main()
{
f>>n>>k;
for(int i=1; i<=n; i++)
for(int j=1; j<=n; j++)
for(int d=1; d<=n*n; d++)
{
if(fr[d]==0 && a[i][j]==0)
{
if(j==k && d%2==0)
{
fr[d]=1;
a[i][j]=d;
if(i%2==1 && i!=n)
{
a[i][j+1]=a[i][j]+n;
fr[a[i][j+1]]=1;
}
break;
}
else if(j==k && d%2==1)
{
fr[d+1]=1;
a[i][j]=d+1;
if(i%2==1 && i!=n)
{
a[i][j+1]=a[i][j]+n;
fr[a[i][j+1]]=1;
}
break;
}
else
{
if(a[i][j-1]>d)
d=a[i][j-1]+1;
fr[d]=1;
a[i][j]=d;
break;
}
}
}
for(int i=1; i<=n; i++)
{
for(int j=1; j<=n; j++)
g<<a[i][j]<<' ';
g<<'\n';
}
return 0;
}