Cod sursa(job #3166560)

Utilizator BOSSSTEFANPetrescu Ioan Stefan BOSSSTEFAN Data 8 noiembrie 2023 23:02:14
Problema Tablete Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <fstream>

using namespace std;
ifstream cin("tablete.in");
ofstream cout("tablete.out");
int mat[1001][1001];
int main()
{
    int n,k,i,j,nr,t;
    cin>>n>>k;
    for(i=1,nr=1;i<=k;i++)
        for(j=1;j<=k;j++,nr++)
            mat[i][j]=nr;
    for(t=k+1;t<=n;t++)
    {
        nr=t*t;
        mat[t][t]=nr;
        nr--;
        for(j=t-1;j>k;j--,nr--)
            mat[t][j]=nr;
        if(nr%2==1)
        {
            mat[t-1][t]=nr;
            nr--;
        }
        for(j=k;j>=1;j--,nr--)
            mat[t][j]=nr;
        i=t-1;
        if(mat[i][t]>0)
            i--;
        while(i>0)
        {
            mat[i][t]=nr;
            nr--;
            i--;
        }
    }
    if(k%2==1)
    {
        for(i=1;i<k;i+=2)
            swap(mat[i][k],mat[i+1][1]);
        swap(mat[k+1][1],mat[k][k]);
    }
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=n;j++)
            cout<<mat[i][j]<<" ";
        cout<<'\n';
    }
    return 0;
}