Submission #623696

#TimeUsernameProblemLanguageResultExecution timeMemory
623696OrazB슈퍼트리 잇기 (IOI20_supertrees)C++14
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> #include "supertrees.h" #define N 1005 #define wr cout << "Continue debugging\n"; #define ll long long int #define pii pair <int, int> #define pb push_back #define ff first #define ss second using namespace std; int col[N], p[N][N], k[N], b[N][N], m[N]; vector <int> e[N]; int construct (vector <vector<int>> p){ int cnt = 0; for (int i = 0; i < p.size(); i++){ for (int j = 0; j < p[i].size(); j++) if (p[i][j] != p[j][i]) return 0; } for (int i = 0; i < p.size(); i++){ if (!col[i]) cnt++, col[i] = cnt; for (int j = 0; j < p[i].size(); j++){ if (!p[i][j]) continue; col[j] = col[i]; if (p[i][j] != 1 and k[col[i]] and k[col[i]] != p[i][j]) return 0; else if (p[i][j] != 1) k[col[i]] = p[i][j]; } } for (int i = 0; i < p.size(); i++) if (!k[col[i]]) k[col[i]] = 1; for (int i = 0; i < p.size(); i++){ cnt = 0; for (int j = 0; j < p[i].size(); j++) if (p[i][j] == k[col[i]]) cnt++; if (cnt < k[col[i]]) return 0; } cnt = 0; for (int i = 0; i < p.size(); i++){ if (m[i]){ for (int j = 0; j < p[i].size(); j++) if (e[m[i]][j] != p[i][j]) return 0; continue; } cnt++; for (int j = 0; j < p[i].size(); j++) e[cnt].pb(p[i][j]); for (int j = 0; j < p[i].size(); j++){ if (i == j or p[i][j] != 1 or m[j]) continue; b[i][j] = b[j][i] = 1; m[j] = cnt; } } for (int i = 0; i < p.size(); i++){ if (m[i]) continue; for (int j = 0; j < p[i].size(); j++){ if (p[i][j] < 2 or m[j]) continue; b[i][j] = b[j][i] = 1; } } build(b); // for (int i = 0; i < p.size(); i++){ // for (int j = 0; j < p[i].size(); j++) cout << b[i][j] << " "; // cout << '\n'; // } return 1; } // int main () // { // ios::sync_with_stdio(false); // cin.tie(0) // int n; // cin >> n; // vector<vector<int>> afk(n, vector <int> (n)); // for (int i = 0; i < n; i++){ // for (int j = 0; j < n; j++) cin >> afk[i][j]; // } // cout << construct(afk); // }

Compilation message (stderr)

supertrees.cpp: In function 'int construct(std::vector<std::vector<int> >)':
supertrees.cpp:17:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   17 |  for (int i = 0; i < p.size(); i++){
      |                  ~~^~~~~~~~~~
supertrees.cpp:18:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   18 |   for (int j = 0; j < p[i].size(); j++) if (p[i][j] != p[j][i]) return 0;
      |                   ~~^~~~~~~~~~~~~
supertrees.cpp:20:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   20 |  for (int i = 0; i < p.size(); i++){
      |                  ~~^~~~~~~~~~
supertrees.cpp:22:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   22 |   for (int j = 0; j < p[i].size(); j++){
      |                   ~~^~~~~~~~~~~~~
supertrees.cpp:29:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   29 |  for (int i = 0; i < p.size(); i++) if (!k[col[i]]) k[col[i]] = 1;
      |                  ~~^~~~~~~~~~
supertrees.cpp:30:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   30 |  for (int i = 0; i < p.size(); i++){
      |                  ~~^~~~~~~~~~
supertrees.cpp:32:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   32 |   for (int j = 0; j < p[i].size(); j++) if (p[i][j] == k[col[i]]) cnt++;
      |                   ~~^~~~~~~~~~~~~
supertrees.cpp:36:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   36 |  for (int i = 0; i < p.size(); i++){
      |                  ~~^~~~~~~~~~
supertrees.cpp:38:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   38 |    for (int j = 0; j < p[i].size(); j++) if (e[m[i]][j] != p[i][j]) return 0;
      |                    ~~^~~~~~~~~~~~~
supertrees.cpp:42:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   42 |   for (int j = 0; j < p[i].size(); j++) e[cnt].pb(p[i][j]);
      |                   ~~^~~~~~~~~~~~~
supertrees.cpp:43:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   43 |   for (int j = 0; j < p[i].size(); j++){
      |                   ~~^~~~~~~~~~~~~
supertrees.cpp:48:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   48 |  for (int i = 0; i < p.size(); i++){
      |                  ~~^~~~~~~~~~
supertrees.cpp:50:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   50 |   for (int j = 0; j < p[i].size(); j++){
      |                   ~~^~~~~~~~~~~~~
supertrees.cpp:55:8: error: could not convert '(int (*)[1005])(& b)' from 'int (*)[1005]' to 'std::vector<std::vector<int> >'
   55 |  build(b);
      |        ^
      |        |
      |        int (*)[1005]