Cod sursa(job #2100515)

Utilizator georgitTreista Georgiana georgit Data 5 ianuarie 2018 19:23:59
Problema Tablete Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.37 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)
            a[i][j]=a[i-1][j]+k-1;
        if(i%2==1 and i!=1)
            a[i][j]=a[i-1][j]+k+1;
    }
    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)
            a[i][j]=a[i-1][j]+k-1;
        if(i%2==1 and i!=1)
            a[i][j]=a[i-1][j]+k+1;
    }
    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;
}