Cod sursa(job #609900)

Utilizator badmanDragan Dan badman Data 23 august 2011 19:16:13
Problema Tablete Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.67 kb
#include <iostream.h>
#include <fstream.h>
int main(){
    ifstream f("tablete.in");
    ofstream g("tablete.out");
    long a[1000][1000],n,k,aux;
        f>>n>>k;
        
        if(k%2==0){
                   int x=1;
           for(int i=1; i<=n; i++)
           for(int j=1; j<=k; j++)
           a[i][j]=x++; 
                       
    for(int i=1; i<=n; i++)
            for(int j=k+1; j<=n; j++)
                    a[i][j]=x++;                    
                 
}
if((k%2!=0)&&(n%2==0)){ int x=1;
                       for(int i=1; i<=n; i++)
            for(int j=1; j<=k; j++) a[i][j]=x++;
            for(int i=1; i<=n; i++)
            for(int j=1; j<=k; j++)
                    if((i%2!=0)&&(j==k)){
                    aux=a[i][j];
                    a[i][j]=a[i+1][1];
                    a[i+1][1]=aux;}
                       
for(int i=1;i<=n;i++)
    for(int j=k+1;j<=n;j++) a[i][j]=x++;
}
if((k%2!=0)&&(n%2!=0)){ int x=1;
                       for(int i=1; i<=n-1; i++)
            for(int j=1; j<=k; j++) a[i][j]=x++;
            for(int i=1; i<=n-1; i++)
            for(int j=1; j<=k; j++)
                    if((i%2!=0)&&(j==k)){
                    aux=a[i][j];
                    a[i][j]=a[i+1][1];
                    a[i+1][1]=aux;}
                   int y=(n-1)*k+1;
            for(int j=1; j<=k-1; j++)
            a[n][j]=y++;
            y+=2;
            a[n][k]=y;
            a[1][k+1]=n*k;
            for(int i=2;i<=n;i++)
    for(int j=k+1;j<=n;j++) a[i][j]=y++;
}
for(int i=1; i<=n; i++){
for(int j=1; j<=n; j++)
    g<<a[i][j]<<" ";
    g<<endl;}
    f.close();
    g.close();
    return 0;
}