Cod sursa(job #1972367)

Utilizator MihaelaCismaruMihaela Cismaru MihaelaCismaru Data 22 aprilie 2017 22:29:18
Problema Tablete Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.92 kb
#include<fstream>
using namespace std;
ifstream in ("tablete.in" );
ofstream out("tablete.out");
int mat[1010][1010],n,k,i,j,p,s,d,w[100001],g;
int main(){
    in >> n >> k;
    if( n % 2 == 0 && k % 2 == 0 ){
            s =0;
        for( i = 1; i <= n; i ++ ){
            for( j = 1; j <= n; j ++ ){
                s++;
                mat[i][j] = s;
            }
        }
        for( i = 1; i <= n; i ++ ){
            for( j = 1; j <= n; j ++ ){
                out<<mat[i][j]<<" ";
            }
            out<<"\n";
        }
    }
    if( k % 2 == 1 ){
            d=0;
            s = 0;
        for( i = 1; i <= n*k; i ++ ){
            if( i % 2 == 0 && p >= k - 1 ){
                s++;
                mat[s][k] = i;
                p=p-k+1;

            }
            else{
                p++;
                d++;
                w[d] = i;
            }
        }
        d = 0;
        for( i = 1; i <= n; i ++ ){
            for( j = 1; j <= k-1; j ++ ){
                d++;
                mat[i][j] =w[d];
            }
        }
        g = n*k;

       for( i = 1; i <= n; i ++ ){
            for( j = k + 1; j <= n; j ++ ){
                g++;
                mat[i][j] = g;
            }
       }

        for( i = 1; i <= n; i ++ ){
            for( j = 1; j <= n; j ++ ){
                out<<mat[i][j]<<" ";
            }
            out<<"\n";
        }
    }
    if( n % 2 == 1 && k % 2 == 0 ){
        for( i = 1; i <= n; i ++ ){
            for( j = 1; j <= n-1; j ++ ){
                s++;
                mat[i][j] = s;
            }
        }
        g=(n-1)*n;
        for( i = 1; i <= n; i ++ ){
                g++;
            mat[i][n] = g;
        }
        for( i = 1; i <= n; i ++ ){
            for( j = 1; j <= n; j ++ ){
                out<<mat[i][j]<<" ";
            }
            out<<"\n";
        }
    }
    return 0;
}