Submission #898779

#TimeUsernameProblemLanguageResultExecution timeMemory
898779vjudge1Valley (BOI19_valley)C++17
36 / 100
3018 ms13892 KiB
#include <bits/stdc++.h>
#define pb push_back
#define f first
#define s second
#define dbg(x) cout << "reached here " << x << endl;
#define int long long 

using namespace std;
typedef pair<int, int> pii;

struct edge {int o, d, w, id;};

const int maxn = 1e5+5, inf = (int)100000*100000*100000;
bool vis, mark[maxn];
int dis[maxn], E;
vector<int> vec;
vector<edge> adj[maxn];

void dfs(int v)
{
    if(v == E)
        vis = true;
    for (auto e: adj[v])
    {
        int u = e.o^e.d^v;
        if(!mark[e.id])
        {
            dis[u] = dis[v] + e.w;
            mark[e.id] = true;
            dfs(u);
        }
    }
}

signed main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);

    int n, s, q;
    cin >> n >> s >> q >> E;

    for (int i = 1; i <= n-1; ++i)
    {
        edge e;
        cin >> e.o >> e.d >> e.w;
        e.id = i;

        adj[e.o].pb(e);
        adj[e.d].pb(e);
    }

    for (int i = 1; i <= s; ++i)
    {
        int a;
        cin >> a;
        vec.pb(a);
    }

    while(q--)
    {
        int l, r;
        cin >> l >> r;
        
        for (int i = 1; i <= n; ++i)
        {
            dis[i] = -1;
            mark[i] = false;
        }
        
        dis[r] = 0;
        mark[l] = true;
        vis = false;
        dfs(r);

        if(vis)
            cout << "escaped" << endl;
        else
        {
            int ans = inf;
            for (int i = 0; i < vec.size(); ++i)
                if(dis[vec[i]] > -1)
                    ans = min(ans, dis[vec[i]]);

            if(ans != inf)
                cout << ans << endl;
            else
                cout << "oo" << endl;
        }

        
            
    }


    return 0;
}

Compilation message (stderr)

valley.cpp: In function 'int main()':
valley.cpp:82:31: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   82 |             for (int i = 0; i < vec.size(); ++i)
      |                             ~~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...