Mai intai trebuie sa te autentifici.
Cod sursa(job #328051)
Utilizator | Data | 30 iunie 2009 20:58:06 | |
---|---|---|---|
Problema | Tablete | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 3.61 kb |
#include<fstream.h>
long int n,k,i,aux,j,nr;
int main()
{
ifstream in("tablete.in");
ofstream out("tablete.out");
in>>n;
in>>k;
nr=1;
if(n%2==0) {if(k%2==0) for(i=1;i<=n;i=i+1)
{for(j=1;j<=n;j=j+1)
{out<<nr<<" ";
nr=nr+1;
}
out<<"\n";
}
else for(i=1;i<=n;i=i+1)
for(j=1;j<=n;j=j+1)
if(i%2==1) if(j==k) {aux=nr;
out<<nr+1<<" ";
nr=nr+2;
}
else if(j==n) out<<nr+n-1<<"\n";
else {out<<nr<<" ";
nr=nr+1;
}
else if(j==1) out<<aux<<" ";
else {out<<nr<<" ";
nr=nr+1;
if(j==n) {out<<"\n";
nr=nr+1;
}
}
}
else if((k%2==0)&&(n%4==1)) for(i=1;i<=n;i=i+1)
{for(j=1;j<=n;j=j+1)
if(i%2==1) {out<<nr<<" ";
nr=nr+1;
}
else {if(i%4==2) { if(j==k){aux=nr;
out<<nr+1<<" ";
nr=nr+2;
}
else {if(j==n) out<<nr+n+n-1;
else
{out<<nr<<" ";
nr=nr+1;
}
}
}
if(i%4==0) { if(j==1) out<<aux<<" ";
else {out<<nr<<" ";
nr=nr+1;
if(j==n) nr=nr+1;
}
}
}
out<<"\n";
}
else if((k%2==0)&&(n%4==3)) for(i=1;i<=n;i=i+1)
{ for(j=1;j<=n;j=j+1)
{ if(i<n-1) {if(i%2==1) {out<<nr<<" ";
nr=nr+1;
}
else { if(i%4==2) { if(j==k){aux=nr;
out<<nr+1<<" ";
nr=nr+2;
}
else {if(j==n) out<<nr+n+n-1;
else
{out<<nr<<" ";
nr=nr+1;
}
}
}
if(i%4==0) if(j==1) out<<aux<<" ";
else {out<<nr<<" ";
nr=nr+1;
if(j==n) nr=nr+1;
}
}
}
if(i==n-1) { if(j==k) {out<<nr+1<<" ";
nr=nr+2;
aux=nr-2;
}
else {out<<nr<<" ";
nr=nr+1;
}
}
if(i==n){if(j==1) out<<aux<<" ";
else {out<<nr<<" ";
nr=nr+1;
}
}
}
out<<"\n";
}
else if((k%2==1)&&(n%4==3))
for(i=1;i<=n;i=i+1)
{for(j=1;j<=n;j=j+1)
if(i%2==0) {out<<nr<<" ";
nr=nr+1;
}
else {if(i%4==1) { if(j==k){aux=nr;
out<<nr+1<<" ";
nr=nr+2;
}
else {if(j==n) out<<nr+n+n-1;
else
{out<<nr<<" ";
nr=nr+1;
}
}
}
if(i%4==3) { if(j==1) out<<aux<<" ";
else {out<<nr<<" ";
nr=nr+1;
if(j==n) nr=nr+1;
}
}
}
out<<"\n";
}
else if((k%2==1)&&(n%4==1))
for(i=1;i<=n;i=i+1)
{ for(j=1;j<=n;j=j+1)
{ if(i<n-1) {if(i%2==0) {out<<nr<<" ";
nr=nr+1;
}
else { if(i%4==1) { if(j==k){aux=nr;
out<<nr+1<<" ";
nr=nr+2;
}
else {if(j==n) out<<nr+n+n-1;
else
{out<<nr<<" ";
nr=nr+1;
}
}
}
if(i%4==3) if(j==1) out<<aux<<" ";
else {out<<nr<<" ";
nr=nr+1;
if(j==n) nr=nr+1;
}
}
}
if(i==n-1) { if(j==n) {out<<nr+n<<" ";
}
else {out<<nr<<" ";
nr=nr+1;
}
}
if(i==n) {out<<nr<<" ";
nr=nr+1;
}
}
out<<"\n";
}
in.close();
out.close();
return 0;
}