Cod sursa(job #2428957)

Utilizator bluestorm57Vasile T bluestorm57 Data 6 iunie 2019 23:42:41
Problema Tablete Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 2.26 kb
#include <fstream>

using namespace std;

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

const int NMAX = 1005;
int n,k,mat[NMAX][NMAX];

void afisaremat(){
    int i,j;
    for(i = 1 ; i <= n ; i++){
        for(j = 1 ; j <= n; j++)
            g << mat[i][j] << " ";
        g << "\n";
    }
}

int main(){
    int i,j,value;
    f >> n >> k;
    value = 1;
    int modn = n % 2, modk = k % 2, inext;
    if(modk == 0 && modn == 0){

        for(i = 1 ; i <= n ; i++)
            for(j = 1 ; j <= n ; j++){
                mat[i][j] = value;
                value++;
            }
        afisaremat();
        return 0;
    }
    if(modk == 1 && modn == 0){
        for(i = 1 ; i <= n ; i += 2){
            inext = i + 1;
            mat[inext][1] = value;
            value++;
            for(j = 1 ; j < n ; j++){
                mat[i][j] = value;
                value++;
            }
            for(j = 2 ; j <= n ; j++){
                mat[inext][j] = value;
                value++;
            }
            mat[i][n] = value;
            value++;

        }

        afisaremat();
        return 0;
    }
    if(modk == 0 && modn == 1){
        for(i = 1 ; i < n ; i += 2){
            inext = i + 1;
            for(j = 1 ; j < n ; j++){
                mat[i][j] = value;
                value++;
            }
            for(j = 1 ; j <= n ; j++){
                mat[inext][j] = value;
                value++;
            }
            mat[i][n] = value;
            value++;

        }

        for(j = 1 ; j <= n ; j++){
            mat[n][j] = value;
            value++;
        }

        afisaremat();
        return 0;
    }


        for(i = 1 ; i < n ; i += 2){
            inext = i + 1;
            mat[inext][1] = value;
            value++;
            for(j = 1 ; j <= n ; j++){
                mat[i][j] = value;
                value++;
            }
            for(j = 2 ; j <= n ; j++){
                mat[inext][j] = value;
                value++;
            }
        }
        value--;
        mat[n-1][n] = n * n;

        for(j = 1 ; j <= n ; j++){
            mat[n][j] = value;
            value++;
        }
        afisaremat();



    return 0;
}