Cod sursa(job #2258170)

Utilizator marian013Giugioiu Marian Constantin marian013 Data 10 octombrie 2018 22:23:47
Problema Tablete Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.59 kb
#include <fstream>
using namespace std;
int main()
{
    ifstream f("tablete.in");
    ofstream g("tablete.out");
    int  n,k,v[1000002],m,i,aux;
    f>>n>>k;
    m=n*n;
    for(i=1;i<=m;i++)
        v[i]=i;
    if(n%2==0&&k%2)
    {

            i=m-n+k;
            while(i>n){

            aux=v[i];
            while(i%n)
            {
                v[i]=v[i-1];
                --i;
            }
            v[i]=aux;
            i-=n-k;
            }
            aux=v[k];
            i=k;
            while(i<=n-2)
                {
                    v[i]=v[i+1];
                    ++i;
                }
                v[i]=v[n+1];
                v[n+1]=aux;
    }
    else
    {
        if(k%2==0)
        {
            i=m-2*n+k;
            while(i>n){
            aux=v[i];
            while(i%n)
            {
                v[i]=v[i-1];
                --i;
            }
            v[i]=aux;
            i-=2*n-k;
            }

        }
        else
        {
            i=m-n+k;
            while(i>n){
            aux=v[i];
            while(i%n)
            {
                v[i]=v[i-1];
                --i;
            }
            v[i]=aux;
            i-=2*n-k;
            }
            aux=v[k];
            i=k;
            while(i<=n-1)
                {
                    v[i]=v[i+1];
                    ++i;
                }
                v[i]=v[n+1];
                v[n+1]=aux;
        }
    }
    for(i=1;i<=m;i++)
    {
        g<<v[i]<<" ";
        if(i%n==0)
            g<<endl;
    }
}