Submission #613884

#TimeUsernameProblemLanguageResultExecution timeMemory
613884Mr_HusanboySimurgh (IOI17_simurgh)C++14
13 / 100
685 ms468 KiB
#include "simurgh.h"
#include<bits/stdc++.h>

using namespace std;
#define all(a) (a).begin(), (a).end()
#define vi vector<int>
#define ff first
#define ss second


vector<vi> g;

vector<int> find_roads(int n, vector<int> u, vector<int> v) {
//    count_common_roads(vi{0,0,0});
    int m = u.size();
    vector<int> vis(n);
    function<void(int)> dfs = [&](int i){
        vis[i] = 1;
        for(auto u : g[i]){
            if(!vis[u]) dfs(u);
        }
    };
    for(int i = 0; i <(1<<m); i++){
        vector<int> tem;
        g.assign(n,vi());
        vis.assign(n,0);
        for(int j = 0; j < m; j++){
            if(i & (1 << j)){
                tem.push_back(j);
                g[u[j]].push_back(v[j]);
                g[v[j]].push_back(u[j]);
            }
        }
        if(tem.size() != n-1) continue;
        dfs(0);
        int cnt = 0;
        for(auto u : vis) cnt += u;
        if(tem.size() == n-1 && cnt == n){
            //cout << "H " << endl;
          //  for(auto u:tem) cout << u << ' '; cout << endl;
            if(count_common_roads(tem) == n-1) return tem;
        }
    }
}

Compilation message (stderr)

simurgh.cpp: In function 'std::vector<int> find_roads(int, std::vector<int>, std::vector<int>)':
simurgh.cpp:34:23: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   34 |         if(tem.size() != n-1) continue;
      |            ~~~~~~~~~~~^~~~~~
simurgh.cpp:38:23: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   38 |         if(tem.size() == n-1 && cnt == n){
      |            ~~~~~~~~~~~^~~~~~
simurgh.cpp:16:22: warning: control reaches end of non-void function [-Wreturn-type]
   16 |     vector<int> vis(n);
      |                      ^
#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...