Cod sursa(job #2316381)

Utilizator MoldovanAndrei1Moldovan Andrei MoldovanAndrei1 Data 11 ianuarie 2019 17:17:18
Problema Tablete Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.78 kb
#include <bits/stdc++.h>
using namespace std;
int dp[1005][1005];
int main()
{
    freopen("tablete.in","r",stdin);
    freopen("tablete.out","w",stdout);
    int n,k;
    scanf("%d%d",&n,&k);
    int i,j;
    if(k%2==0)
    {
        int cnt=0;
        for(i=1;i<=n;i++)
            for(j=1;j<=k;j++)
            dp[i][j]=++cnt;
        for(i=1;i<=n;i++)
            for(j=k+1;j<=n;j++)dp[i][j]=++cnt;
        for(i=1;i<=n;i++)
        {
            for(j=1;j<=n;j++)
                printf("%d ",dp[i][j]);
                printf("\n");
        }
        return 0;
    }
    if(n%2==0)
    {
        int cnt=0;
        for(i=1;i<=n;i+=2)
        {
            ++cnt;
            int l=cnt;
            for(j=1;j<=k;j++)
            {
                dp[i][j]=++cnt;
            }
            dp[i+1][1]=l;
            for(j=2;j<=k;j++)
                dp[i+1][j]=++cnt;
        }
        for(i=1;i<=n;i++)
            for(j=k+1;j<=n;j++)dp[i][j]=++cnt;
for(i=1;i<=n;i++)
        {
            for(j=1;j<=n;j++)
                printf("%d ",dp[i][j]);
                printf("\n");
        }
        return 0;
    }
    int cnt=0;
    for(i=1;i<n;i+=2)
        {
            ++cnt;
            int l=cnt;
            for(j=1;j<=k;j++)
            {
                dp[i][j]=++cnt;
            }
            dp[i+1][1]=l;
            for(j=2;j<=k;j++)
                dp[i+1][j]=++cnt;
        }
        dp[1][k+1]=++cnt;
        for(i=1;i<=k;i++)
            dp[n][i]=++cnt;
    for(i=k+2;i<=n;i++)dp[1][i]=++cnt;

        for(i=2;i<=n;i++)
            for(j=k+1;j<=n;j++)dp[i][j]=++cnt;
for(i=1;i<=n;i++)
        {
            for(j=1;j<=n;j++)
                printf("%d ",dp[i][j]);
                printf("\n");
        }
    return 0;
}