Cod sursa(job #231685)

Utilizator oltean_florinoltean florin-ioan oltean_florin Data 14 decembrie 2008 12:49:27
Problema Tablete Scor 40
Compilator cpp Status done
Runda Algoritmiada 2009, Runda 1, Studenti Marime 1.84 kb
#include <fstream>

using namespace std;

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

int n, k;
int i, j;

void pp() {
  for (i = 0; i < n; i++) {
    for (j = 0; j < n; j++)
      fout<<i*n+j+1<<" ";
    
    fout<<"\n";
  }
}

void pi() {
  for (i = 0; i < n; i++) {
    for (j = 0; j < n; j++)
      if (i % 2 == 1) {//linie para
        if (j == 0)
          fout<<(i-1)*n+1<<" ";
        else {
          if (j == n-1)
            fout<<i*n+j<<" ";
          else
            fout<<i*n+j<<" ";
        }
      } else {//linie impara
        if (j == 0)
          fout<<i*n+j+2<<" ";
        else {
          if (j == n-1)
            fout<<(i+1)*n+n<<" ";
          else
            fout<<i*n+j+2<<" ";
        }    
      }
    fout<<"\n";
  }
}

void ip() {

}

void ii() {
  for (i = 0; i < n; i++) {
    for (j = 0; j < n; j++)
      
      if (i % 3 == 1) {//linie para
        if (j == 0)
          fout<<(i-1)*n+1<<" ";
        else {
          if (j == n-1)
            fout<<i*n+j<<" ";
          else
            fout<<i*n+j+1<<" ";
        }
      } else {//linie impara
      
      if ( i % 3 == 0 ) {//linie 0
        if (j == 0)
          fout<<i*n+j+2<<" ";
        else {
          if (j == n-1)
            fout<<(i+1)*n+n<<" ";
          else
            fout<<i*n+j+2<<" ";
        }      
        }
      else {//linie 2
      
        if (j == 0)
          fout<<(i-1)*n+1<<" ";
        else {
          if (j == n-1)
            fout<<i*n+j<<" ";
          else
            fout<<i*n+j<<" ";
        }   
      }   
      }
    fout<<"\n";
  }
}


int main() {
  
    
  fin>>n>>k;
  
  if ( n % 2 == 0) {//par
    if ( k % 2 == 0) 
      //par par
      pp();
    else
      //par impar
      pi();
  } else {//impar
    if ( k % 2 == 0) 
      //impar par
      ip();
    else
      //impar impar
      ii();  
  } 
  
  return 0;  
}