Cod sursa(job #1300003)

Utilizator buzu.tudor67Tudor Buzu buzu.tudor67 Data 23 decembrie 2014 23:30:11
Problema Tablete Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 2.27 kb
#include<fstream>
using namespace std;
ifstream fi("tablete.in");
ofstream fo("tablete.out");

int i,j,n,k,nr_a,nr_b;

int main(){
    fi>>n>>k;
    
    nr_a=0; 
    nr_b=n*k;
    
    if(!(k&1))
      {
       for(i=1;i<=n;i++)
          {
           for(j=1;j<=n;j++)
             if(j<=k) fo<<(++nr_a)<<' '; 
             else fo<<(++nr_b)<<' '; 
           fo<<'\n';
          }
      }
    else if((k&1) && (!(n&1)))
           {
            for(i=1;i<=n;i++)
              if(i&1)
                {
                 for(j=1;j<=n;j++)
                   if(j<k) fo<<(++nr_a)<<' '; 
                   else if(j>k) fo<<(++nr_b)<<' '; 
                   else fo<<nr_a+2<<' ';
                            
                 fo<<'\n';
                }
              else{
                   for(j=1;j<=n;j++)
                     if(j>1 && j<=k) fo<<(++nr_a)<<' '; 
                     else if(j>k) fo<<(++nr_b)<<' ';
                     else{
                          fo<<(++nr_a)<<' ';
                          ++nr_a; 
                         }
                     
                   fo<<'\n';
                  }
           }
    else if((k&1) && (n&1))
           {
            for(i=1;i<=n;i++)
              if(i&1)
                {
                 for(j=1;j<=n;j++)
                   if(j<k) fo<<(++nr_a)<<' '; 
                   else if(j>k){
                                if(i==1 && j==k+1){
                                                   fo<<(n*k)<<' ';
                                                   ++nr_b;
                                                  }
                                else fo<<(++nr_b)<<' ';
                               } 
                   else fo<<nr_a+2<<' ';
                            
                 fo<<'\n';
                }
              else{
                   for(j=1;j<=n;j++)
                     if(j>1 && j<=k) fo<<(++nr_a)<<' '; 
                     else if(j>k) fo<<(++nr_b)<<' ';
                     else{
                          fo<<(++nr_a)<<' ';
                          ++nr_a; 
                         }
                     
                   fo<<'\n';
                  }
           }
    
    fi.close();
    fo.close();
    return 0;
}