Cod sursa(job #2100520)

Utilizator georgitTreista Georgiana georgit Data 5 ianuarie 2018 19:38:46
Problema Tablete Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 2.06 kb
#include <fstream>

using namespace std;
int n,k,i,j,t,a[1001][1001];
int main()
{
    ifstream f("tablete.in");
    ofstream g("tablete.out");
    f>>n>>k;
    if(k%2==0)
    {
        t=1;
        for(i=1; i<=n; i++)
            for(j=1; j<=k; j++)
            {
                a[i][j]=t;
                t++;
            }
        for(i=1; i<=n; i++)
            for(j=k+1; j<=n; j++)
            {
                a[i][j]=t;
                t++;
            }
    }
    if(n%2==0 and k%2==1)
    {
        for(j=1; j<=k; j++)
            for(i=1; i<=n; i++)
            {
                if(i==1)
                    a[i][j]=j;
                if(j==k and i==1)
                    a[i][j]=k+1;
                if(i%2==0 and (j==1 or j==k))
                    a[i][j]=a[i-1][j]+k-1;
                else if(i%2==1 and i!=1 and (j==1 or j==k))
                    a[i][j]=a[i-1][j]+k+1;
                else if(j!=1 and i!=1)
                    a[i][j]=a[i-1][j]+k;
            }
        t=n*k+1;
        for(i=1; i<=n; i++)
            for(j=k+1; j<=n; j++)
            {
                a[i][j]=t;
                t++;
            }

    }
    if(n%2==1 and k%2==1)
    {
        for(j=1; j<=k; j++)
            for(i=1; i<=n; i++)
            {
                if(i==1)
                    a[i][j]=j;
                if(j==k and i==1)
                    a[i][j]=k+1;
                if(i%2==0 and (j==1 or j==k))
                    a[i][j]=a[i-1][j]+k-1;
                else if(i%2==1 and i!=1 and (j==1 or j==k))
                    a[i][j]=a[i-1][j]+k+1;
                else if(j!=1 and i!=1)
                    a[i][j]=a[i-1][j]+k;
            }
        t=n*k;
        for(i=1; i<=n; i++)
            for(j=k+1; j<=n; j++)
            {
                a[i][j]=t;
                if(t==n*k)
                    t+=2;
                else
                    t++;
            }

    }
    for(i=1; i<=n; i++)
    {
        for(j=1; j<=n; j++)
            g<<a[i][j]<<" ";
        g<<"\n";
    }
    return 0;
}