Cod sursa(job #2253908)

Utilizator livliviLivia Magureanu livlivi Data 4 octombrie 2018 15:47:21
Problema Tablete Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include <fstream>
#define N 1000
using namespace std;

int a[N+1][N+1];

ifstream cin("tablete.in");
ofstream cout("tablete.out");

int main(){
    int n,k;
    cin>>n>>k;
    
    int l=0;
    int c=0;
    
    for(int i=1;i<=n;i++){
        if (l!=0){
            a[i][1]=l;
            l=0;
        }
        else {
            c++;
            a[i][1]=c;
        }
        
        for(int j=2;j<k;j++)
            a[i][j]=(++c);
        
        if (c&1) a[i][k]=(++c);
        else {
            c+=2;
            a[i][k]=c;
            l=c-1;
        }
        
        for(int j=k+1;j<=n;j++)
            a[i][j]=(++c);
    }
    
    
    if (l!=0){
        for(int j=n;j>1;j--)
            a[n][j]=a[n][j-1];
        a[n][1]=a[n-1][n];
        a[n-1][n]=l;
        if (a[n][1]>a[n][2]) swap(a[n][1],a[n][2]);
    }
    
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++)
            cout<<a[i][j]<<' ';
        cout<<endl;
    }
    
    return 0;
}