Cod sursa(job #2316797)

Utilizator cameliapatileaPatilea Catalina Camelia cameliapatilea Data 12 ianuarie 2019 14:02:12
Problema Tablete Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.8 kb
#include <iostream>
#include<fstream>
using namespace std;

ifstream f("tablete.in");
ofstream g("tablete.out");

int  matrice[1005][1005];
bool marcaj[1000005];

int main() {

    int n, k;
    int i, j;
    f >> n >> k;

    if(n % 2 == 0 && k %2 == 0)
    {
        int nr1 = 0;
        for(i = 1; i <= n; i++)
            for(j = 1; j <= n; j++)
                matrice[i][j] = ++nr1;
    }
    if((n % 2 == 0 || n % 2 !=0) && k % 2 != 0)
    {
        int p = 0;
        int nr2 = n * n;

        matrice[1][k] = k + 1;
        marcaj[matrice[1][k]] = 1;
        for(i = 2; i <= n; i++)
            if(i % 2 != 0)
            {
                matrice[i][k] = matrice[i-1][k] + k - 1;
                marcaj[matrice[i][k]] = 1;
            }
            else {
                matrice[i][k] = matrice[i - 1][k] + k + 1;
                marcaj[matrice[i][k]] = 1;
            }
        for(i = 1;i <= n; i++)
            for(j = 1;j <= k; j++)
                if(!matrice[i][j] )
                {
                    ++p;
                    while(marcaj[p] != 0 && p <= nr2) ++p;
                    matrice[i][j] = p;
                }
        for(i = 1; i <= n; i++)
            for(j = k + 1; j <= n; j++)
                if(!matrice[i][j] )
                {
                    ++p;
                    while (marcaj[p] != 0 && p <= nr2) ++p;
                        matrice[i][j] = p;
                }

    }
    if( n % 2 != 0 && k % 2 == 0)
    {
        int nr3 = 0;
        for( i = 1; i <= n; i++)
            for( j = 1; j <= k; j++)
                matrice[i][j] = ++nr3;

        for(i = 1; i <= n; i++)
            for(j = nr3 + 1; j <= n; j++)
                matrice[i][j] = ++nr3;
    }
    for(i = 1; i <= n; i++)
    {
        for( j = 1; j <= n; j++)
            g << matrice[i][j] <<" ";
        g<<"\n";
    }
}