Pagini recente » Cod sursa (job #550634) | Cod sursa (job #2775903) | Cod sursa (job #1612457) | Cod sursa (job #2478234) | Cod sursa (job #230920)
Cod sursa(job #230920)
#include <vector>
#include <list>
#include <map>
#include <set>
#include <deque>
#include <stack>
#include <bitset>
#include <algorithm>
#include <functional>
#include <numeric>
#include <utility>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <ctime>
#define pb push_back
#define mkp make_pair
#define vi vector<int>
#define vii vector<int> :: iterator
#define si set <int>
#define sii set <int> :: iterator
#define is insert
#define vpi vector <pair<int,int> >
#define vpii vector <pair <int,int> > :: iterator
#define spi set <pair<int,int> >
#define spii set <pair <int,int> > :: iterator
#define for_each(tip,it,multime) for( tip it = multime.begin();it!=multime.end();++it)
using namespace std;
int n,k;
set<int> ales;
vi col;
int main()
{
freopen("tablete.in","r",stdin);
freopen("tablete.out","w",stdout);
scanf("%d",&n);
scanf("%d",&k);
for(int i= 1;i<=n;i++)
{
int cur = i * k;
if( cur % 2)cur++;
ales.is(cur);
col.pb(cur);
}
int left = 0;
int right = k*n-1 ;
for(int i=1;i<=n;i++)
{
for(int j=0;j<k-1;j++)
{
while(ales.count(left))left++;
left++;
while(ales.count(left))left++;
printf("%d ",left);
}
printf("%d ",col[i-1]);
for(int j=0;j<n-k;j++)
{
while(ales.count(right))right++;
right++;
while(ales.count(right))right++;
printf("%d ",right);
}
printf("\n");
}
return 0;
}