Cod sursa(job #1135003)

Utilizator ASTELOTudor Enescu ASTELO Data 7 martie 2014 09:26:17
Problema Tablete Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.93 kb
#include<cstdio>
int n,k,i,j,v[1000001],par=2,imp=1,m;
int main ()
{
freopen("tablete.in","r",stdin);
freopen("tablete.out","w",stdout);
scanf("%d%d",&n,&k);
m=n;
for(i=1;i<=n;i++)
    {
    if(i<=n*n/2/(n-1))
    for(j=1;j<=m;j++)
        {
        if(j==k)
            {
            printf("%d ",imp-1);
            v[imp-1]=1;
            }
        else
            {
            printf("%d ",imp);
            imp+=2;
            v[imp]=1;
            }
        }
    else
        {
        if(i==n*n/2/(n-1)+1)
            {
            int pp=0;
            int x=n*n/2-(n-1)*(i-1);
            for(j=1;j<=n-x-1;j++)
                {
                printf("%d ",par);
                par+=2;
                while(v[par]==1)
                    par+=2;
                if(k==j)
                    pp=1;
                }
            if(pp==1)
                {
                printf("%d ",par);
                par+=2;
                while(v[par]==1)
                    par+=2;
                for(j=n-x+1;j<=n;j++)
                    {
                    printf("%d ",imp);
                    imp+=2;
                    }
                }
            else
                {
                for(j=n-x;j<=n;j++)
                    {
                    if(j==k)
                        {
                        printf("%d ",imp-1);
                        v[imp-1]=1;
                        }
                    else
                        {
                        printf("%d ",imp);
                        imp+=2;
                        }
                    }
                }
            }
        else
            {
            for(j=1;j<=n;j++)
                {
                printf("%d ",par);
                par+=2;
                while(v[par]==1)
                    par+=2;
                }
            }
        }
    printf("\n");
    }
return 0;
}