Submission #771100

#TimeUsernameProblemLanguageResultExecution timeMemory
771100OrazBConnecting Supertrees (IOI20_supertrees)C++14
56 / 100
191 ms30384 KiB
#include <bits/stdc++.h> #include "supertrees.h" using namespace std; #define N 100005 #define wr cout << "Continue debugging\n"; #define all(x) (x).begin(), (x).end() #define ll long long int #define pii pair <int, int> #define pb push_back #define ff first #define ss second vector<int> vec[N]; int construct(vector<vector<int>> p){ int n = p.size(); vector<vector<int>> b(n, vector<int>(n, 0)); vector<int> vis(n, 0), ok(n, 0); int cnt = 0; for (int i = 0; i < n; i++){ if (vis[i]){ if (p[i] != vec[vis[i]]) return 0; continue; } cnt++; for (int j = 0; j < n; j++){ if (p[i][j] and i != j){ if (p[i][j] == 1){ b[i][j] = b[j][i] = 1; vis[j] = cnt; } } vec[cnt].pb(p[i][j]); } } for (int i = 0; i < n; i++){ if (vis[i] or ok[i]) continue; deque<int> v; for (int j = 0; j < n; j++){ if (p[i][j] == 2 and !vis[j]){ ok[j] = 1; v.pb(j); } } if (!v.size()) continue; if (v.size() == 1) return 0; v.push_front(i); for (int j = 0; j < v.size(); j++){ for (int k = j+1; k < v.size(); k++) if (p[v[j]][v[k]] != 2) return 0; } b[v[0]][v.back()] = b[v.back()][v[0]] = 1; for (int j = 1; j < v.size(); j++){ b[v[j-1]][v[j]] = b[v[j]][v[j-1]] = 1; } } // for (int i = 0; i < n; i++){ // for (int j = 0; j < n; j++) cout << b[i][j] << ' '; // cout << '\n'; // } build(b); return 1; } // int main () // { // int n; // cin >> n; // vector<vector<int>> p(n, vector<int>(n)); // for (int i = 0; i < n; i++){ // for (int j = 0; j < n; j++) cin >> p[i][j]; // } // int x = construct(p); // }

Compilation message (stderr)

supertrees.cpp: In function 'int construct(std::vector<std::vector<int> >)':
supertrees.cpp:48:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::deque<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   48 |   for (int j = 0; j < v.size(); j++){
      |                   ~~^~~~~~~~~~
supertrees.cpp:49:24: warning: comparison of integer expressions of different signedness: 'int' and 'std::deque<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   49 |    for (int k = j+1; k < v.size(); k++) if (p[v[j]][v[k]] != 2) return 0;
      |                      ~~^~~~~~~~~~
supertrees.cpp:52:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::deque<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   52 |   for (int j = 1; j < v.size(); j++){
      |                   ~~^~~~~~~~~~
#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...