Submission #1324036

#TimeUsernameProblemLanguageResultExecution timeMemory
1324036sh_qaxxorov_571슈퍼트리 잇기 (IOI20_supertrees)C++20
Compilation error
0 ms0 KiB
#include "supertrees.h" #include <vector> #include <numeric> using namespace std; // DSU strukturasi guruhlarni boshqarish uchun struct DSU { vector<int> parent; DSU(int n) { parent.resize(n); iota(parent.begin(), parent.end(), 0); } int find(int i) { if (parent[i] == i) return i; return parent[i] = find(parent[i]); } void unite(int i, int j) { int root_i = find(i); int root_j = find(j); if (root_i != root_j) parent[root_i] = root_j; } }; int construct(vector<vector<int>> p) { int n = p.size(); [cite: 62] vector<vector<int>> b(n, vector<int>(n, 0)); [cite: 28, 29] DSU dsu_all(n), dsu_line(n); // 1. Dastlabki tekshiruv va guruhlash for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (p[i][j] == 3) return 0; [cite: 17, 59] if (p[i][j] > 0) dsu_all.unite(i, j); [cite: 17] if (p[i][j] == 1) dsu_line.unite(i, j); [cite: 67, 68] } } // 2. Chiziqli (1-yo'l) ulanishlarni qurish for (int i = 0; i < n; i++) { if (dsu_line.parent[i] != i) { b[i][dsu_line.parent[i]] = b[dsu_line.parent[i]][i] = 1; [cite: 29, 32] } } // Har bir guruh ichidagi mantiqni tekshirish for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (dsu_all.find(i) == dsu_all.find(j)) { if (p[i][j] == 0) return 0; [cite: 17] } else { if (p[i][j] > 0) return 0; [cite: 17] } } } // 3. Siklli (2-yo'l) ulanishlarni qurish vector<vector<int>> components(n); for (int i = 0; i < n; i++) { if (dsu_line.find(i) == i) { components[dsu_all.find(i)].push_back(i); } } for (int i = 0; i < n; i++) { if (components[i].size() < 2) continue; if (components[i].size() == 2) return 0; // 2 ta tugun bilan 2 ta yo'l hosil qilib bo'lmaydi [cite: 17] for (int j = 0; j < components[i].size(); j++) { int u = components[i][j]; int v = components[i][(j + 1) % components[i].size()]; b[u][v] = b[v][u] = 1; [cite: 29, 32] } } build(b); [cite: 23, 27, 28] return 1; [cite: 24, 55] }

Compilation message (stderr)

supertrees.cpp: In function 'int construct(std::vector<std::vector<int> >)':
supertrees.cpp:26:24: error: 'cite' was not declared in this scope
   26 |     int n = p.size(); [cite: 62]
      |                        ^~~~
supertrees.cpp:26:28: error: expected ',' before ':' token
   26 |     int n = p.size(); [cite: 62]
      |                            ^
      |                            ,
supertrees.cpp:26:28: error: expected identifier before ':' token
supertrees.cpp: In lambda function:
supertrees.cpp:27:5: error: expected '{' before 'vector'
   27 |     vector<vector<int>> b(n, vector<int>(n, 0)); [cite: 28, 29]
      |     ^~~~~~
supertrees.cpp: In function 'int construct(std::vector<std::vector<int> >)':
supertrees.cpp:26:33: error: expected ';' before 'vector'
   26 |     int n = p.size(); [cite: 62]
      |                                 ^
      |                                 ;
   27 |     vector<vector<int>> b(n, vector<int>(n, 0)); [cite: 28, 29]
      |     ~~~~~~                       
supertrees.cpp:27:55: error: expected ',' before ':' token
   27 |     vector<vector<int>> b(n, vector<int>(n, 0)); [cite: 28, 29]
      |                                                       ^
      |                                                       ,
supertrees.cpp:27:55: error: expected identifier before ':' token
supertrees.cpp:27:59: error: expected ']' before ',' token
   27 |     vector<vector<int>> b(n, vector<int>(n, 0)); [cite: 28, 29]
      |                                                           ^
      |                                                           ]
supertrees.cpp: In lambda function:
supertrees.cpp:27:59: error: expected '{' before ',' token
supertrees.cpp: In function 'int construct(std::vector<std::vector<int> >)':
supertrees.cpp:27:63: error: expected ';' before ']' token
   27 |     vector<vector<int>> b(n, vector<int>(n, 0)); [cite: 28, 29]
      |                                                               ^
      |                                                               ;
supertrees.cpp:33:46: error: expected ',' before ':' token
   33 |             if (p[i][j] == 3) return 0; [cite: 17, 59]
      |                                              ^
      |                                              ,
supertrees.cpp:33:46: error: expected identifier before ':' token
supertrees.cpp:33:50: error: expected ']' before ',' token
   33 |             if (p[i][j] == 3) return 0; [cite: 17, 59]
      |                                                  ^
      |                                                  ]
supertrees.cpp: In lambda function:
supertrees.cpp:33:50: error: expected '{' before ',' token
supertrees.cpp: In function 'int construct(std::vector<std::vector<int> >)':
supertrees.cpp:33:54: error: expected ';' before ']' token
   33 |             if (p[i][j] == 3) return 0; [cite: 17, 59]
      |                                                      ^
      |                                                      ;
supertrees.cpp:34:56: error: expected ',' before ':' token
   34 |             if (p[i][j] > 0) dsu_all.unite(i, j); [cite: 17]
      |                                                        ^
      |                                                        ,
supertrees.cpp:34:56: error: expected identifier before ':' token
supertrees.cpp: In lambda function:
supertrees.cpp:35:13: error: expected '{' before 'if'
   35 |             if (p[i][j] == 1) dsu_line.unite(i, j); [cite: 67, 68]
      |             ^~
supertrees.cpp: In function 'int construct(std::vector<std::vector<int> >)':
supertrees.cpp:34:61: error: expected ';' before 'if'
   34 |             if (p[i][j] > 0) dsu_all.unite(i, j); [cite: 17]
      |                                                             ^
      |                                                             ;
   35 |             if (p[i][j] == 1) dsu_line.unite(i, j); [cite: 67, 68]
      |             ~~                                               
supertrees.cpp:35:58: error: expected ',' before ':' token
   35 |             if (p[i][j] == 1) dsu_line.unite(i, j); [cite: 67, 68]
      |                                                          ^
      |                                                          ,
supertrees.cpp:35:58: error: expected identifier before ':' token
supertrees.cpp:35:62: error: expected ']' before ',' token
   35 |             if (p[i][j] == 1) dsu_line.unite(i, j); [cite: 67, 68]
      |                                                              ^
      |                                                              ]
supertrees.cpp: In lambda function:
supertrees.cpp:35:62: error: expected '{' before ',' token
supertrees.cpp: In function 'int construct(std::vector<std::vector<int> >)':
supertrees.cpp:35:66: error: expected ';' before ']' token
   35 |             if (p[i][j] == 1) dsu_line.unite(i, j); [cite: 67, 68]
      |                                                                  ^
      |                                                                  ;
supertrees.cpp:41:13: error: 'dsu_line' was not declared in this scope
   41 |         if (dsu_line.parent[i] != i) {
      |             ^~~~~~~~
supertrees.cpp:42:13: error: 'b' was not declared in this scope
   42 |             b[i][dsu_line.parent[i]] = b[dsu_line.parent[i]][i] = 1; [cite: 29, 32]
      |             ^
supertrees.cpp:42:75: error: expected ',' before ':' token
   42 |             b[i][dsu_line.parent[i]] = b[dsu_line.parent[i]][i] = 1; [cite: 29, 32]
      |                                                                           ^
      |                                                                           ,
supertrees.cpp:42:75: error: expected identifier before ':' token
supertrees.cpp:42:79: error: expected ']' before ',' token
   42 |             b[i][dsu_line.parent[i]] = b[dsu_line.parent[i]][i] = 1; [cite: 29, 32]
      |                                                                               ^
      |                                                                               ]
supertrees.cpp: In lambda function:
supertrees.cpp:42:79: error: expected '{' before ',' token
supertrees.cpp: In function 'int construct(std::vector<std::vector<int> >)':
supertrees.cpp:42:83: error: expected ';' before ']' token
   42 |             b[i][dsu_line.parent[i]] = b[dsu_line.parent[i]][i] = 1; [cite: 29, 32]
      |                                                                                   ^
      |                                                                                   ;
supertrees.cpp:49:17: error: 'dsu_all' was not declared in this scope
   49 |             if (dsu_all.find(i) == dsu_all.find(j)) {
      |                 ^~~~~~~
supertrees.cpp:50:50: error: expected ',' before ':' token
   50 |                 if (p[i][j] == 0) return 0; [cite: 17]
      |                                                  ^
      |                                                  ,
supertrees.cpp:50:50: error: expected identifier before ':' token
supertrees.cpp: In lambda function:
supertrees.cpp:51:13: error: expected '{' before '}' token
   51 |             } else {
      |             ^
supertrees.cpp: In function 'int construct(std::vector<std::vector<int> >)':
supertrees.cpp:50:55: error: expected ';' before '}' token
   50 |                 if (p[i][j] == 0) return 0; [cite: 17]
      |                                                       ^
      |                                                       ;
   51 |             } else {
      |             ~                                          
supertrees.cpp:52:49: error: expected ',' before ':' token
   52 |                 if (p[i][j] > 0) return 0; [cite: 17]
      |                                                 ^
      |                                                 ,
supertrees.cpp:52:49: error: expected identifier before ':' token
supertrees.cpp: In lambda function:
supertrees.cpp:53:13: error: expected '{' before '}' token
   53 |             }
      |             ^
supertrees.cpp: In function 'int construct(std::vector<std::vector<int> >)':
supertrees.cpp:52:54: error: expected ';' before '}' token
   52 |                 if (p[i][j] > 0) return 0; [cite: 17]
      |                                                      ^
      |                                                      ;
   53 |             }
      |             ~                                         
supertrees.cpp:60:13: error: 'dsu_line' was not declared in this scope
   60 |         if (dsu_line.find(i) == i) {
      |             ^~~~~~~~
supertrees.cpp:61:24: error: 'dsu_all' was not declared in this scope
   61 |             components[dsu_all.find(i)].push_back(i);
      |                        ^~~~~~~
supertrees.cpp:72:13: error: 'b' was not declared in this scope
   72 |             b[u][v] = b[v][u] = 1; [cite: 29, 32]
      |             ^
supertrees.cpp:72:41: error: expected ',' before ':' token
   72 |             b[u][v] = b[v][u] = 1; [cite: 29, 32]
      |                                         ^
      |                                         ,
supertrees.cpp:72:41: error: expected identifier before ':' token
supertrees.cpp:72:45: error: expected ']' before ',' token
   72 |             b[u][v] = b[v][u] = 1; [cite: 29, 32]
      |                                             ^
      |                                             ]
supertrees.cpp: In lambda function:
supertrees.cpp:72:45: error: expected '{' before ',' token
supertrees.cpp: In function 'int construct(std::vector<std::vector<int> >)':
supertrees.cpp:72:49: error: expected ';' before ']' token
   72 |             b[u][v] = b[v][u] = 1; [cite: 29, 32]
      |                                                 ^
      |                                                 ;
supertrees.cpp:76:11: error: 'b' was not declared in this scope
   76 |     build(b); [cite: 23, 27, 28]
      |           ^
supertrees.cpp:76:20: error: expected ',' before ':' token
   76 |     build(b); [cite: 23, 27, 28]
      |                    ^
      |                    ,
supertrees.cpp:76:20: error: expected identifier before ':' token
supertrees.cpp:76:24: error: expected ']' before ',' token
   76 |     build(b); [cite: 23, 27, 28]
      |                        ^
      |                        ]
supertrees.cpp: In lambda function:
supertrees.cpp:76:24: error: expected '{' before ',' token
supertrees.cpp: In function 'int construct(std::vector<std::vector<int> >)':
supertrees.cpp:76:32: error: expected ';' before ']' token
   76 |     build(b); [cite: 23, 27, 28]
      |                                ^
      |                                ;
supertrees.cpp:77:20: error: expected ',' before ':' token
   77 |     return 1; [cite: 24, 55]
      |                    ^
      |                    ,
supertrees.cpp:77:20: error: expected identifier before ':' token
supertrees.cpp:77:24: error: expected ']' before ',' token
   77 |     return 1; [cite: 24, 55]
      |                        ^
      |                        ]
supertrees.cpp: In lambda function:
supertrees.cpp:77:24: error: expected '{' before ',' token
supertrees.cpp: In function 'int construct(std::vector<std::vector<int> >)':
supertrees.cpp:77:28: error: expected ';' before ']' token
   77 |     return 1; [cite: 24, 55]
      |                            ^
      |                            ;
supertrees.cpp:78:1: warning: control reaches end of non-void function [-Wreturn-type]
   78 | }
      | ^