Cod sursa(job #2214556)

Utilizator miruna1224Floroiu Miruna miruna1224 Data 19 iunie 2018 13:16:12
Problema Tablete Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.48 kb
#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    int n ,k ,a=0 ,*l1, *l2, i, j,maxi=0;

    ifstream in("tablete.in");
    in>>n>>k;
    in.close();

    ofstream out("tablete.out");
    if ( k%2 == 0)
    {
        for(i=0; i<n; i++)
        {
            for(j=1; j<=n; j++)
                out<<n*i+j<<" ";
            out<<'\n';
        }
    }
    else
    {
        l1 = new int[n+1];
        l2 = new int [n+2];

        for(i= k ; i>0; i--)
            l1[i] = i+1;
        l2[1] = 1;
        l2[2] = 1+l1[k];
        for(j= 3; j<=k; j++)
            l2[j] = l2[j-1]+1;
        i = k+1;
        while(i<=n)
        {
            l2[i] = l2[i-1] +1;
            l1[i] = l2[i] +1;
            l1[i+1] = l1[i]+1;
            l2[i+1] = l1[i+1]+1;
            i+=2;
        }
        for(i=1; i<=n; i++)
        {
            out<<l1[i]<<" ";
        }
        out<<endl;
        for(i=1; i<=n; i++)
        {
            out<<l2[i]<<" ";
        }
        out<<endl;
        if(l2[n] % 2 == 0)
            maxi = l2[n];
        else maxi = l2[n]+1;

        for(i=2; i<=n; i+=2)
        {
            for(i=1; i<=n; i++)
            {
                out<<l1[i]+maxi<<" ";
            }
            out<<endl;
            for(i=1; i<=n; i++)
            {
                out<<l2[i]+maxi<<" ";
            }
            maxi += maxi;
            out<<endl;
        }
    }
    out.close();
    return 0;
}