Cod sursa(job #232975)

Utilizator geoNechifor George geo Data 16 decembrie 2008 16:56:20
Problema Tablete Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.95 kb
//============================================================================
// Name        : Tablete.cpp
// Author      : Geo
// Version     :
// Copyright   : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================

#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    ifstream fin("tablete.in");
    ofstream fout("tablete.out");
    int n,k;
    fin>>n>>k;
    int crnr = 0;
    int irest =-1;
    int lrest =-1;
    for (int i=1;i<=n;i++)
    {
        if  (lrest !=-1)
        {
            if (irest !=-1)
                fout<<irest<<" ";
            fout<<lrest<<" ";
            for (int j=3;j<=n-1;j++)
            {
                crnr++;
                fout<<crnr<<" ";
            }
        }
        else
        {
            if (((crnr +k)%2 != 0)&&(irest == -1))
            {
                irest = crnr+1;
                crnr=irest;
                for (int j=1;j<=n-1;j++)
                {
                    crnr++;
                    fout<<crnr<<" ";
                }
            }
            else if (((crnr+k)%2 !=0)&&(irest != -1))
            {
                fout<<irest<<" ";
                irest = -1;
                for (int j=2;j<=n-1;j++)
                {
                    crnr++;
                    fout<<crnr<<" ";
                }
            }
            else
            {
                for (int j=1;j<=n-1;j++)
                {
                    crnr++;
                    fout<<crnr<<" ";
                }
            }
        }
        crnr++; //number to print
        if ((i == n-1)&&
            ((((crnr+k) %2 !=0)&&(irest ==-1))||
            (((crnr+k) %2 == 0)&&(irest !=-1))))
        {
            lrest = crnr;
            fout<<n*n<<endl;
            //crnr--;//reset
        }
        else
        {
            fout<<crnr<<endl;
        }
    }
    fin.close();
    fout.close();
    return 0;
}