Submission #908722

# Submission time Handle Problem Language Result Execution time Memory
908722 2024-01-16T17:38:22 Z nightfal Simurgh (IOI17_simurgh) C++14
Compilation error
0 ms 0 KB
void dfs(int parent, int now, std::vector<int>& visit, std::vector<vector<int>>& edgeL) {
    visit[now]=1;
    for(int elem: edgeL[now])
        if (elem!=parent && !visit[elem])
			dfs(now,elem,visit,edgeL);
	return;
}

bool isTree(std::vector<int>& r, std::vector<int>& u, std::vector<int>& v) {
    int n = r.size()+1;
    std::vector<vector<int>> edgeL(n);
    for(int i=0; i<n-1; i++) {
        int s = u[r[i]], e = v[r[i]];
        edgeL[s].push_back(e);
        edgeL[e].push_back(s);
    }
    vector<int> visit(n,0);
    dfs(-1,u[r[0]],visit,edgeL);
	for(int i=0; i<n; i++)
		if(!visit[i]) return false;
	return true;
}

bool selectEdges(int cnt, int start, std::vector<int>& r, std::vector<int>& u, std::vector<int>& v){
	int n = r.size()+1, m = u.size();
    if (cnt == n-1){
        if(isTree(r,u,v) && count_common_roads(r)== n-1) return true;
        else return false;
    }
    for(int i=start; i<m; i++){
        r[cnt] = i;
        if (selectEdges(cnt+1,i+1,r,u,v)) return true;
    }
    return false;
}

std::vector<int> subtask1(int n, std::vector<int>& u, std::vector<int>& v) {
    std::vector<int> r(n-1), zero(n-1,-1);
    if (selectEdges(0,0,r,u,v)) return r;
    else return zero;
}

std::vector<int> find_roads(int n, std::vector<int> u, std::vector<int> v) {
    // if (isSubtask1(n)) 
    return subtask1(n,u,v);
}

Compilation message

simurgh.cpp:1:36: error: 'std::vector' has not been declared
    1 | void dfs(int parent, int now, std::vector<int>& visit, std::vector<vector<int>>& edgeL) {
      |                                    ^~~~~~
simurgh.cpp:1:42: error: expected ',' or '...' before '<' token
    1 | void dfs(int parent, int now, std::vector<int>& visit, std::vector<vector<int>>& edgeL) {
      |                                          ^
simurgh.cpp: In function 'void dfs(int, int, int)':
simurgh.cpp:2:5: error: 'visit' was not declared in this scope
    2 |     visit[now]=1;
      |     ^~~~~
simurgh.cpp:3:19: error: 'edgeL' was not declared in this scope
    3 |     for(int elem: edgeL[now])
      |                   ^~~~~
simurgh.cpp:3:5: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
    3 |     for(int elem: edgeL[now])
      |     ^~~
simurgh.cpp:6:2: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
    6 |  return;
      |  ^~~~~~
simurgh.cpp: At global scope:
simurgh.cpp:9:18: error: 'vector' is not a member of 'std'
    9 | bool isTree(std::vector<int>& r, std::vector<int>& u, std::vector<int>& v) {
      |                  ^~~~~~
simurgh.cpp:1:1: note: 'std::vector' is defined in header '<vector>'; did you forget to '#include <vector>'?
  +++ |+#include <vector>
    1 | void dfs(int parent, int now, std::vector<int>& visit, std::vector<vector<int>>& edgeL) {
simurgh.cpp:9:25: error: expected primary-expression before 'int'
    9 | bool isTree(std::vector<int>& r, std::vector<int>& u, std::vector<int>& v) {
      |                         ^~~
simurgh.cpp:9:39: error: 'vector' is not a member of 'std'
    9 | bool isTree(std::vector<int>& r, std::vector<int>& u, std::vector<int>& v) {
      |                                       ^~~~~~
simurgh.cpp:9:39: note: 'std::vector' is defined in header '<vector>'; did you forget to '#include <vector>'?
simurgh.cpp:9:46: error: expected primary-expression before 'int'
    9 | bool isTree(std::vector<int>& r, std::vector<int>& u, std::vector<int>& v) {
      |                                              ^~~
simurgh.cpp:9:60: error: 'vector' is not a member of 'std'
    9 | bool isTree(std::vector<int>& r, std::vector<int>& u, std::vector<int>& v) {
      |                                                            ^~~~~~
simurgh.cpp:9:60: note: 'std::vector' is defined in header '<vector>'; did you forget to '#include <vector>'?
simurgh.cpp:9:67: error: expected primary-expression before 'int'
    9 | bool isTree(std::vector<int>& r, std::vector<int>& u, std::vector<int>& v) {
      |                                                                   ^~~
simurgh.cpp:9:74: error: expression list treated as compound expression in initializer [-fpermissive]
    9 | bool isTree(std::vector<int>& r, std::vector<int>& u, std::vector<int>& v) {
      |                                                                          ^
simurgh.cpp:24:43: error: 'std::vector' has not been declared
   24 | bool selectEdges(int cnt, int start, std::vector<int>& r, std::vector<int>& u, std::vector<int>& v){
      |                                           ^~~~~~
simurgh.cpp:24:49: error: expected ',' or '...' before '<' token
   24 | bool selectEdges(int cnt, int start, std::vector<int>& r, std::vector<int>& u, std::vector<int>& v){
      |                                                 ^
simurgh.cpp: In function 'bool selectEdges(int, int, int)':
simurgh.cpp:25:10: error: 'r' was not declared in this scope
   25 |  int n = r.size()+1, m = u.size();
      |          ^
simurgh.cpp:27:21: error: 'u' was not declared in this scope
   27 |         if(isTree(r,u,v) && count_common_roads(r)== n-1) return true;
      |                     ^
simurgh.cpp:27:23: error: 'v' was not declared in this scope
   27 |         if(isTree(r,u,v) && count_common_roads(r)== n-1) return true;
      |                       ^
simurgh.cpp:27:24: error: 'isTree' cannot be used as a function
   27 |         if(isTree(r,u,v) && count_common_roads(r)== n-1) return true;
      |                        ^
simurgh.cpp:27:29: error: 'count_common_roads' was not declared in this scope
   27 |         if(isTree(r,u,v) && count_common_roads(r)== n-1) return true;
      |                             ^~~~~~~~~~~~~~~~~~
simurgh.cpp:30:24: error: 'm' was not declared in this scope
   30 |     for(int i=start; i<m; i++){
      |                        ^
simurgh.cpp:32:37: error: 'u' was not declared in this scope
   32 |         if (selectEdges(cnt+1,i+1,r,u,v)) return true;
      |                                     ^
simurgh.cpp:32:39: error: 'v' was not declared in this scope
   32 |         if (selectEdges(cnt+1,i+1,r,u,v)) return true;
      |                                       ^
simurgh.cpp: At global scope:
simurgh.cpp:37:6: error: 'vector' in namespace 'std' does not name a template type
   37 | std::vector<int> subtask1(int n, std::vector<int>& u, std::vector<int>& v) {
      |      ^~~~~~
simurgh.cpp:37:1: note: 'std::vector' is defined in header '<vector>'; did you forget to '#include <vector>'?
   37 | std::vector<int> subtask1(int n, std::vector<int>& u, std::vector<int>& v) {
      | ^~~
simurgh.cpp:43:6: error: 'vector' in namespace 'std' does not name a template type
   43 | std::vector<int> find_roads(int n, std::vector<int> u, std::vector<int> v) {
      |      ^~~~~~
simurgh.cpp:43:1: note: 'std::vector' is defined in header '<vector>'; did you forget to '#include <vector>'?
   43 | std::vector<int> find_roads(int n, std::vector<int> u, std::vector<int> v) {
      | ^~~