Cod sursa(job #3277237)

Utilizator PetruApostolApostol Mihnea Petru PetruApostol Data 15 februarie 2025 14:20:06
Problema Lowest Common Ancestor Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.38 kb
#include <iostream>
using namespace std;

int v[1001][1001];
int rasp[2][1001][1001];
int lin[1001];
int col[1001];
int frv[2001],n;

int choose(){
    int i,j;
    for(i=1;i<=n;i++){
        for(j=1;j<=n;j++){
            if(rasp[0][i][j]<rasp[1][i][j]) return 0;
            if(rasp[0][i][j]>rasp[1][i][j]) return 1;
        }
    }
    return 0;
}

int main()
{
    ///ios_base::sync_with_stdio(false);
    ////cin.tie(NULL);
    int i,j,a,j1;
    cin>>n;
    for(i=1;i<=n;i++){
        for(j=1;j<=n;j++){
            cin>>v[i][j];frv[v[i][j]]++;
        }
    }
    for(a=2;a<=n*2;a++){
        if(frv[a]==1){
            for(i=1;i<=n;i++){
                for(j=1;j<=n;j++){
                    if(v[i][j]==a){
                        for(j1=1;j1<=n;j1++){
                            lin[j1]=frv[v[j1][j]];
                            col[j1]=frv[v[i][j1]];
                        }
                        break;
                    }
                }
            }
            break;
        }
    }
    for(i=1;i<=n;i++){
        for(j=1;j<=n;j++){
            rasp[0][i][j]=lin[i]+col[j];
            rasp[1][i][j]=2*(n+1)-lin[i]-col[j];
        }
    }
    a=choose();
    for(i=1;i<=n;i++){
        for(j=1;j<=n;j++){
            cout<<rasp[a][i][j];
            if(j<n) cout<<" ";
        }
        cout<<"\n";
    }
    return 0;
}