Cod sursa(job #1238536)

Utilizator MihneaGhiraMihnea MihneaGhira Data 7 octombrie 2014 09:46:58
Problema Tablete Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.44 kb
#include<fstream>
using namespace std;
ifstream fin("tablete.in");
ofstream fout("tablete.out");
int n,k,i,j,aux,n1;
int a[1001][1001];
int main(){
    fin>>n>>k;
    n1=0;
    for(i=1;i<=n;i++){
        for(j=1;j<=n;j++){
            a[i][j]=++n1;
        }
    }
    if(n%2==0){
        for(i=1;i<n;i+=2){
            aux=a[i][k];
            a[i][k]=a[i+1][k];
            a[i+1][k]=aux;
            aux=a[i][k];
            for(j=k+1;j<=n;j++){
                a[i][j-1]=a[i][j];
            }
            a[i][n]=aux;
            aux=a[i+1][k];
            for(j=k-1;j>=1;j--){
                a[i+1][j+1]=a[i+1][j];
            }
            a[i+1][1]=aux;
        }
    }
    else{
        if(a[1][k]%2==1){
            if((n+1)/2%2==0){
                for(i=1;i<n;i+=4){
                    aux=a[i][k];
                    a[i][k]=a[i+2][k];
                    a[i+2][k]=aux;
                    aux=a[i][k];
                    for(j=k+1;j<=n;j++){
                        a[i][j-1]=a[i][j];
                    }
                    a[i][n]=aux;
                    aux=a[i+2][k];
                    for(j=k-1;j>=1;j--){
                        a[i+2][j+1]=a[i+2][j];
                    }
                    a[i+2][1]=aux;

                }
            }
        }
    }
    for(i=1;i<=n;i++){
        for(j=1;j<=n;j++)
            fout<<a[i][j]<<" ";
        fout<<"\n";
    }
    return 0;
}