Cod sursa(job #2229483)

Utilizator FunnyStockyMihnea Andreescu FunnyStocky Data 6 august 2018 21:34:58
Problema Tablete Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.5 kb
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef long double ld;

const int N=1000+5;
int n,k;
int v[N][N];

inline void afis() {
    for(int i=1;i<=n;i++) {
        for(int j=1;j<=n;j++) {
            cout<<v[i][j]<<" ";
        }
        cout<<"\n";
    }
    exit(0);
}

bool viz[N*N];

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    freopen("tablete.in","r",stdin);
    freopen("tablete.out","w",stdout);
    cin>>n>>k;
    if(k%2==0) {
        int cnt=0;
        for(int i=1;i<=n;i++) {
            for(int j=1;j<=k;j++) {
                v[i][j]=++cnt;
            }
        }
        for(int i=1;i<=n;i++) {
            for(int j=k+1;j<=n;j++) {
                v[i][j]=++cnt;
            }
        }
        afis();
    }
    else {
        int cnt=1;
        for(int i=1;i<=n;i++) {
            v[i][1]=cnt;
            cnt+=2;
            viz[v[i][1]]=1;
        }
        cnt=1;
        for(int r=1;r<=n;r++) {
            for(int c=2;c<=k;c++) {
                while(viz[cnt]) {
                    cnt++;
                }
                v[r][c]=cnt;
                viz[v[r][c]]=1;
            }
        }
        for(int r=1;r<=n;r++) {
            for(int c=k+1;c<=n;c++) {
                while(viz[cnt]) {
                    cnt++;
                }
                v[r][c]=cnt;
                viz[v[r][c]]=1;
            }
        }
        afis();
    }
    return 0;
}
/**

**/