Cod sursa(job #2258920)

Utilizator AndreiCroitoruAndrei Croitoru AndreiCroitoru Data 12 octombrie 2018 15:54:21
Problema Tablete Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <fstream>

using namespace std;
ifstream in("tablete.in");
ofstream out("tablete.out");
int v[1000001];
int main()
{
    int n,k,i;
    in>>n>>k;
    if(n%2==0 && k%2==0)
	{
		for(i=1;i<=n*n;i++)
		{
			out<<i<<' ';
			if(i%n==0)
			out<<'\n';
		}
	}
	else if(n%2!=0 && k%2==0)
	{
		int ok=0,cnt=0,ck;
		ck=k;
		k=ck;
		for(i=1;i<=n*n;i++)
		{
			if(ok==1 && cnt%n==0)
			{
				for(int j=1;j<=n*n;j++)
				{
					if(v[j]==0)
					{
						out<<j<<" ";
						v[j]=1;
						cnt++;
						break;
					}
				}
				ok=0;
			}
			if(i%n!=k)
			{
				out<<i<<' ';
				cnt++;
				v[i]=1;
			}
			if(i%n==k)
			{
				if(i%2==1)
				{
				v[i+1]=1;
				out<<i+1<<' ';
				cnt++;
				i++;
				ok=1;
				}
				else
				{
				out<<i<<' ';
				cnt++;
				v[i]=1;
				}
			}
			if(cnt%n==0)
			out<<'\n';
		}
	}
    return 0;
}