Submission #447621

#TimeUsernameProblemLanguageResultExecution timeMemory
447621EliteCallsYouConnecting Supertrees (IOI20_supertrees)C++17
0 / 100
239 ms30072 KiB
#include "supertrees.h" #include <bits/stdc++.h> using namespace std ; ////////////////////////////////////////////////// vector < int > mp[1001] ; bool ans = true ; //////////////////////////////////////////////// int construct(std::vector<std::vector<int>> p) { int n = (int)p.size(); /////////////////////////////////////// for ( int i = 0 ; i < n ; i ++ ){ for ( int j = i+1 ; j < n ; j ++ ){ if ( p[i][j] && i != j ){ mp[i].push_back(j) ; mp[j].push_back(i) ; } } } for ( int i = 0 ; i < n ; i ++ ){ if ( (int)mp[i].size() == 1 ){ return 0 ; } } ////////////////////////////////////// bool been[1001] = {false} ; int bridge[n][n] ; for ( int i = 0 ; i < n ; i ++ ){ for ( int j = 0 ; j < n ; j ++ ){ bridge[i][j] = 0 ; } } for ( int i = 0 ; i < n ; i ++ ){ for ( int j = i+1 ; j < n ; j ++ ){ if ( p[i][j] ){ continue ; } for ( int child : mp[i] ){ if ( p[child][j] ){ return 0 ; } } } } for (int i = 0 ; i < n ; i++ ) { if ( been[i] ){ break ; } int last = -1 ; for ( int j = i+1 ; j < n ; j ++ ){ if ( p[i][j] ){ been[j] = true ; last = j ; for ( int l = j-1 ; l >= i ; l -- ){ if ( p[i][l] ){ bridge[l][j] = 1 ; bridge[j][l] = 1 ; break ; } } } } if ( last != -1 ){ bridge[i][last] = 1 ; bridge[last][i] = 1 ; } } ///////////////////////////////////// std::vector<std::vector<int>> answer; for ( int i = 0 ; i < n ; i ++ ){ std::vector < int > row ; for ( int j = 0 ; j < n ; j ++ ){ row.push_back(bridge[i][j]) ; }answer.push_back(row) ; } build(answer); 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...