Cod sursa(job #997562)

Utilizator narcis_vsGemene Narcis - Gabriel narcis_vs Data 14 septembrie 2013 15:02:19
Problema Tablete Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.52 kb
#include <fstream>
#include <iostream>

#define ValMax 1000004
#define Nmax 1002
using namespace std;

bool use[ValMax];
int a[Nmax][Nmax];
int main()
{

    int i,j,value, n, k;
    ifstream f("tablete.in");
    f>>n>>k;
    f.close();
    if(k&1)
    {
        value = 0;
        for (i = 1; i <= n; ++i)
        {
            for(j = 1; j <= k; ++j)
                a[i][j] = ++value;
            if (i&1)
            {
                ++a[i][k];
                ++i;
                if (i<=n)
                {
                    a[i][1] = value++;
                    for (j = 2; j <= k; ++j)
                        a[i][j] = ++value;
                }
            }
        }
        if(n&1)
        {
            a[1][k+1] = value++;
            for (j = k+2; j <= n; ++j)
                a[1][j] = ++value;
            for (i = 2; i <= n; ++i)
                for (j = k+1; j <= n; ++j)
                    a[i][j] = ++value;
        }
        else
            for (i = 1; i <= n; ++i)
                for (j = k+1; j <= n; ++j)
                    a[i][j] = ++value;

    }
    else
    {
        for(i = value = 1;i <= n; ++i)
            for(j = 1;j <= k; ++j)
                a[i][j] = value++;
         for(i = 1;i <= n; ++i)
            for(j = k+1;j <= n; ++j)
                a[i][j] = value++;
    }
    ofstream g("tablete.out");
    for(i=1;i<=n;++i)
    {
        for(j=1;j<=n;++j)
            g<<a[i][j]<<" ";
        g<<"\n";
    }
    g.close();
    return 0;
}