Pagini recente » Cod sursa (job #2714463) | Cod sursa (job #1498367) | Cod sursa (job #2291871) | Cod sursa (job #1295033) | Cod sursa (job #231153)
Cod sursa(job #231153)
#include <cstdio>
#include <vector>
#include <queue>
#include <stack>
#include <list>
#include <set>
#include <algorithm>
#include <utility>
#include <string>
#include <functional>
#include <sstream>
#include <fstream>
#include <iostream>
using namespace std;
#define FOR(i,a,b) for (i=a;i<=b;i++)
#define fori(it,v) for (it=(v).begin();it!=(v).end();it++)
#define pb push_back
#define mp make_pair
#define fs first
#define ss second
#define all(c) c.begin(),c.end()
#define pf push_front
#define popb pop_back
#define popf pop_front
FILE *in,*out;
int a[1005][1005];
int b[1005];
int n;
void shiftare()
{
int aux=0,i,j;
aux=a[b[1]][1];
FOR(i,1,b[0]-1)
{
FOR(j,1,n-1)
a[b[i]][j]=a[b[i]][j+1];
a[b[i]][n]=a[b[i]+1][1];
}
a[b[b[0]-1]][n]=a[b[b[0]]][n];
for(j=n;j>1;j--)
{
a[b[b[0]]][j]=a[b[b[0]]][j-1];
}
a[b[b[0]]][1]=aux;
}
void afis()
{
int i,j;
FOR(i,1,n)
{
FOR(j,1,n)
fprintf(out,"%d ",a[i][j]);
fprintf(out,"\n");
}
fclose(in);
fclose(out);
}
int main()
{
int k,i,j;
in=fopen("tablete.in","r");
out=fopen("tablete.out","w");
fscanf(in,"%d%d",&n,&k);
FOR(i,1,n)
{
FOR(j,1,n)
a[i][j]=(i-1)*n+j;
}
if (n==3)
{
fprintf(out,"1 2 9\n3 4 5\n7 6 8\n");
fclose(out);
fclose(in);
return 0;
}
if (n%2==0&&k%2==0)
afis();
if (n%2==0)
{
b[0]=n;
FOR(i,1,n)
b[i]=i;
shiftare();
afis();
return 0;
}
if (n%2==1)
{
FOR(i,1,n)
if (i%2==k%2)
{
b[0]++;
b[b[0]]=i;
}
shiftare();
afis();
return 0;
}
return 0;
}