Cod sursa(job #2011998)

Utilizator PopaAlex18Popa Alex-Ovidiu PopaAlex18 Data 17 august 2017 16:52:13
Problema Tablete Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.23 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int n,k,a[1001][1001];

void completare(int n,int k,int a[1001][1001])
{
    int nr=1;
    for(int i=0;i<n;i++)
        for(int j=0;j<k;j++)
        {
            a[i][j]=nr;
            nr++;
        }
    for(int i=0;i<n;i++)
        for(int j=k;j<n;j++)
        {
            a[i][j]=nr;
            nr++;
        }
    //cout<<nr;
}

void interschimbareNr(int &a,int &b)
{
    int aux=a;
    a=b;
    b=aux;
}

void interschimbareGen(int n,int k,int a[1001][1001])
{
    for(int i=0;i<n-1;i+=2)
        interschimbareNr(a[i][k-1],a[i+1][0]);
}

void generare(int n,int k,int a[1001][1001])
{
    completare(n,k,a);
    if(n%2==0 && k%2==1)
        interschimbareGen(n,k,a);
    if(n%2==1 && k%2==1)
    {
        interschimbareGen(n,k,a);
        interschimbareNr(a[n-1][k-1],a[0][k]);
    }
}

void afisare(int n,int a[1001][1001])
{
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<n;j++)
            fout<<a[i][j]<<" ";
        fout<<endl;
    }
}
int main()
{
    fin>>n>>k;
    //completare(n,k,a);
    generare(n,k,a);
    afisare(n,a);
    return 0;
}