Cod sursa(job #2049240)

Utilizator mirceaisherebina mircea mirceaishere Data 26 octombrie 2017 23:14:51
Problema Tablete Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.38 kb
#include <fstream>
using namespace std;
ifstream fin("tablete.in");
ofstream fout("tablete.out");

int n, k, c[1000002], ant, t, i, j, s;
int v[1001][1001];




int main () {
    fin>>n>>k;
    j=k;
    for(i=1; i<=n; i++){
        if((n*(i-1)+j)%2==0){
            v[i][j]=n*(i-1)+j;
            c[v[i][j]]=1;
        }else{
            if(i==n){
                v[i][j]=n*(i-1)+j-1;
                c[v[i][j]]=1;
            }else{
                v[i][j]=(n*(i-1)+j)+1;
                c[v[i][j]]=1;
            }
        }
    }

    for(i=1; i<=n; i++){
        for(j=1; j<=n; j++){
            t=0;
            if(v[i][j]==0){
                if(j<k){
                    while(c[v[i][k]-t]==1)
                        t++;
                    v[i][j]=v[i][k]-t;
                    c[v[i][j]]=1;
                }else{
                    while(c[v[i][k]+t]==1)
                        t++;
                    v[i][j]=v[i][k]+t;
                    c[v[i][j]]=1;
                }
            }
        }
    }
    for(s=1; s<=n; s++){
        for(i=1;i<=n-1;i++)
             for(j=i+1;j<=n;j++)
                  if(v[s][i]>v[s][j])
                       swap(v[s][i],v[s][j]);
    }
        for(int a=1; a<=n; a++){
            for(int b=1; b<=n; b++){
                fout<<v[a][b]<<" ";
            }
            fout<<"\n";
        }

}