Cod sursa(job #2029629)

Utilizator cont_nouCont Nou cont_nou Data 30 septembrie 2017 12:16:06
Problema Tablete Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.86 kb
#include <iostream>
#include <fstream>
using namespace std;

int main(){
    int n, k, nr=0;
    ifstream f("tablete.in");
    ofstream g("tablete.out");
    f>>n>>k;
    int a[n][n];
    for(int i=0; i<n; i++)
        for(int j=0; j<n; j++)
            a[i][j]=nr++;

    nr=0;
    if(n%2==1 && k%2==0)
        for(int i=0; i<n; i++)
            for(int j=0; j<n; j++){
                if(i%2==1)
                    if(j==k-1){
                        int aux=a[i][0];
                        a[i][0]=a[i-1][0];
                        int c=0;
                        while(c<n-1){
                            a[i-1][c]=a[i-1][c+1];
                            c++;
                        }
                        a[i-1][n-1]=a[i][j];
                        c=k;
                        while(c>=0){
                            a[i][c]=a[i][c-1];
                            c--;
                        }
                        a[i][1]=aux;
                    }
            }

    nr=0;
    if(n%2==0 && k%2==1)
        for(int i=0; i<n; i++)
            for(int j=0; j<n; j++){
                if(i%2==1)
                    if(j==k-1){
                        int aux=a[i][0];
                        a[i][0]=a[i-1][0];
                        int c=0;
                        while(c<n-1){
                            a[i-1][c]=a[i-1][c+1];
                            c++;
                        }
                        c=n-1;
                        a[i-1][n-1]=a[i][n-1];
                        while(c>=0){
                            a[i][c]=a[i][c-1];
                            c--;
                        }
                        a[i][1]=aux;
                    }
            }

    for(int i=0; i<n; i++){
        for(int j=0; j<n; j++)
            g<<a[i][j]<<' ';
        g<<'\n';
    }
    return 0;
}