Submission #447434

#TimeUsernameProblemLanguageResultExecution timeMemory
447434Nodir_BobievConnecting Supertrees (IOI20_supertrees)C++17
21 / 100
368 ms24120 KiB
#include "supertrees.h"
#include <bits/stdc++.h>
using namespace std ;

int construct(std::vector<std::vector<int>> p) {
      int n = p.size();
      vector <vector <int>> ans;
      for(int i = 0; i < n; i ++){
            vector <int> row;
            row.resize(n);
            ans.push_back(row);
      }
      map <int, long> us, comp;
      for(int i = 0; i < n; i ++){
            if( us[i] ) continue;
            comp[i] = i;
            for(int j = 0; j < n; j ++){
                if( p[i][j] ){
                    if( i == j ) continue;
                    if( us[j] ) return 0;
                    us[j] = 1, comp[j] = i;
                    ans[i][j] = ans[j][i] = 1;
                }
            }
      }
      for(int i = 0; i < n; i ++){
            for(int j = 0; j < n; j ++){
                if( ( comp[i] == comp[j] ) != p[i][j] ) return 0;
            }
      }
      build(ans);
      return 1;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...