Cod sursa(job #614492)

Utilizator GrimpowRadu Andrei Grimpow Data 6 octombrie 2011 18:27:37
Problema Tablete Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 2.97 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)<<' ';


            }
      }
      else
      {
          m=k;
          b[1]=k;
          for(i=k;i<=n;i++)
          a[i]++;
          for(i=1;i<=n-3;i++)
            {
                if(i!=1)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)<<' ';
            }
          g<<'\n';
          for(j=1;j<=n;j++)
          {
             if (j==n)
             g<<a[j]+n*(i-1)+2*n-1;
             else
             g<<a[j]+n*(i-1)<<' ';

          }
          g<<'\n';
          for(j=1;j<=n;j++)
          g<<n*i+j<<' ';
          g<<'\n';
          g<<k+n*(n-3)<<' ';
          for(j=1;j<n;j++)
          g<<n*i+n+j<<' ';


      }








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





}