Cod sursa(job #1600154)

Utilizator CraiuAndrei Craiu Craiu Data 14 februarie 2016 18:54:50
Problema Tablete Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 2.07 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("tablete.in");
ofstream fout("tablete.out");

int n, k;
int a[1005][1005];
int v[1005*1005];

int main()
{
    int i, j, x, y;
    fin >> n >> k;
    if(k % 2 == 0)
    {
        x = 0;
        for(i = 1; i <=  n; i++)
            for(j = 1; j <= n; j++)
                a[i][j] = ++x;
    }
    else
    {
        if(n % 2 == 0)
        {
            for(i = 1; i <= n; i++)
            {
                if(i % 2 == 0)  x = k * (i - 1);
                if(i % 2 == 1)  y = a[i - 1][k] + 1;
                for(j = 1; j <= k; j++)
                {
                    if(i % 2 == 1)
                    {
                        a[i][j] = y;
                        if(j >= 2) y += 2;
                        else y++;
                    }
                    if(i % 2 == 0)
                    {
                        a[i][j] = x;
                        if(j == k - 1) x++;
                        else x += 2;
                    }
                }
            }
            x = k * n + 1;
            for(i = 1; i <= n; i++)
                for(j = k + 1; j <= n; j++)
                    a[i][j] = x++;
        }
        else
        {
            for(i = 1; i <= n; i++)
            {
                if(i % 2 == 0)  x = k * (i - 1);
                if(i % 2 == 1)  y = a[i - 1][k] + 1;
                for(j = 1; j < k; j++)
                {
                    if(i % 2 == 1)
                    {
                        a[i][j] = y;
                        if(j >= 2) y += 2;
                        else y++;
                    }
                    if(i % 2 == 0)
                    {
                        a[i][j] = x;
                        if(j == k - 1) x++;
                        else x += 2;
                    }
                }
            }
        }
    }
    for(i = 1; i <= n; i++)
            {
                for(j = 1; j <= n; j++)
                    fout << a[i][j] << " ";
                fout<<"\n";
            }
    return 0;
}