Cod sursa(job #2215074)

Utilizator felixiPuscasu Felix felixi Data 20 iunie 2018 23:07:12
Problema Tablete Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <bits/stdc++.h>

using namespace std;

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

int N, K;
priority_queue<int, vector<int>, greater<int>> pq;
int v[1002][1002];

int main()
{
    in >> N >> K;
    for( int i = 1;  i <= N*N;  ++i ) pq.push(i);
    for( int i = 1;  i <= N;  ++i ) {
        for( int j = 1;  j < K;  ++j ) {
            v[i][j] = pq.top();
            pq.pop();
        }
        int el = 0;
        if( pq.top() % 2 ) {
            el = pq.top();
            pq.pop();
        }
        v[i][K] = pq.top();
        pq.pop();
        if(el)
            pq.push(el);
    }
    priority_queue<int> pp;
    while(!pq.empty()) {
        pp.push(pq.top());
        pq.pop();
    }
    for( int col = N;  col > K;  --col ) {
        for( int line = N;  line >= 1;  --line ) {
            v[line][col] = pp.top();
            pp.pop();
        }
    }
    for( int i = 1;  i <= N;  ++i ) for( int j = 1;  j <= N;  ++j ) out << v[i][j] << " \n"[j == N];
    return 0;
}