Cod sursa(job #3166555)

Utilizator BOSSSTEFANPetrescu Ioan Stefan BOSSSTEFAN Data 8 noiembrie 2023 22:49:12
Problema Tablete Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.95 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(i=t-1;i>=1;i--,nr--)
            mat[i][t]=nr;
        for(j=t-1;j>=1;j--,nr--)
            mat[t][j]=nr;
        if(mat[t][k]%2==1)
        {
            if(mat[t-1][t]%2==0)
                swap(mat[t-1][t],mat[t][k]);
            else
                swap(mat[t-2][t],mat[t][k]);
        }
    }
    if(k%2==1)
    {
        for(i=1;i<k;i+=2)
            swap(mat[i][k],mat[i+1][1]);
        mat[k][k]=nr;
        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;
}