Cod sursa(job #614486)

Utilizator GrimpowRadu Andrei Grimpow Data 6 octombrie 2011 18:00:45
Problema Tablete Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 2.1 kb
#include<iostream>
#include<fstream>
using namespace std;


int main()
{
    int i,n,m,a[10000],b[10000],k,j;
    ifstream f("tablete.in");
    ofstream g("tablete.out");
    f>>n>>k;
    for(i=1;i<=n;i++)
    a[i]=i;
    for(i=n+1;i<=2*n;i++)
    b[i-n]=i;
    if(n%2==0)
    {
        if (k%2==0)
        {

            for(i=1;i<=n;i++)
            g<<a[i]<<' ';
            g<<'\n';
            for(i=1;i<=n;i++)
            g<<b[i]<<' ';
            for(i=3;i<=n;i++)
            {
                g<<'\n';
                if(i%2==1)
                for(j=1;j<=n;j++)
                   g<<a[j]+n*(i-1)<<' ';
                else
                 for(j=1;j<=n;j++)
                 g<<b[j]+n*(i-2)<<' ';
            }
        }
        else
        {
            m=k;
            for(i=k;i<=n;i++)
            a[i]++;
            b[1]=m;
            a[n]=2*n;
            for(i=2;i<=n;i++)
            b[i]--;
            for(i=1;i<=n;i++)
            g<<a[i]<<' ';
            g<<'\n';
            for(i=1;i<=n;i++)
            g<<b[i]<<' ';
            for(i=3;i<=n;i++)
            {
                g<<'\n';
                if(i%2==1)
                for(j=1;j<=n;j++)
                   g<<a[j]+n*(i-1)<<' ';
                else
                 for(j=1;j<=n;j++)
                 g<<b[j]+n*(i-2)<<' ';
            }
        }
    }
    else
    {
      if(k%2==0)
      {
          a[n]=b[n];
          for(i=1;i<=n;i++)
             b[i]--;
          for(i=1;i<=n;i++)
            g<<a[i]<<' ';
            g<<'\n';
            for(i=1;i<=n;i++)
            g<<b[i]<<' ';
            for(i=3;i<=n;i++)
            {
                g<<'\n';
                if(i%2==1)
                for(j=1;j<=n;j++)
                   {
                       if(i==n&&j==n) g<<n*n;
                       else g<<a[j]+n*(i-1)<<' ';
                   }
                else
                 for(j=1;j<=n;j++)
                     g<<b[j]+n*(i-2)<<' ';


            }
      }








    }
    f.close();
    g.close();
    return 0;





}