Cod sursa(job #2496558)

Utilizator CodCatalinCodreanu Catalin CodCatalin Data 21 noiembrie 2019 00:08:05
Problema Lacate Scor 100
Compilator cpp-64 Status done
Runda ad_hoc Marime 0.97 kb
#include <fstream>
#include <algorithm>
using namespace std;

ifstream f("lacate.in");
ofstream g("lacate.out");

int ma[300][300],nrc,ind,n;
int ap[300000];

int main()
{
    f>>n;nrc=n-1;
    g<<n*(n-1)/2<<" "<<n-1<<'\n';
    for(int i=1;i<n;++i)ma[1][i]=i,ap[i]++;
    for(int i=2;i<=n;++i)ma[i][1]=i-1,ap[i-1]++;
    for(int i=2;i<=n;++i)
    {
        ind=1;
        for(int k=1;k<i;++k)
        {
            for(int j=1;j<n;++j)
                if(ap[ma[k][j]]==1)
                {
                    ind++;
                    ap[ma[k][j]]++;
                    ma[i][ind]=ma[k][j];
                    break;
                }
        }
        for(int j=1;j<=n*n;++j)
        {
//            if(i==3)g<<j<<" "<<ap[j]<<endl;
            if(!ap[j])ind++,ap[j]++,ma[i][ind]=j;
            if(ind==n-1)break;
        }
    }
    for(int i=1;i<=n;++i){
        for(int j=1;j<=n-1;++j)
        g<<ma[i][j]<<" ";g<<'\n';
    }
    return 0;
}