제출 #1327320

#제출 시각아이디문제언어결과실행 시간메모리
1327320madtValley (BOI19_valley)C++20
0 / 100
11 ms452 KiB
#include <bits/stdc++.h>

using namespace std;

array<int, 3> mas[102];

int main()
{
    int n, S, Q, E; cin>>n>>S>>Q>>E;

    for(int i=0; i<n-1; i++){
        int a, b, w; cin>>a>>b>>w;
        if(b<a)
            swap(a, b);
        mas[b][1]=w, mas[b][0]=i+1;
    }

    for(int i=0; i<S; i++){
        int s;
        cin>>s;
        mas[s][2]=1;
    }

    for(int i=0; i<Q; i++){
        int kurs, v; cin>>kurs>>v;
        bool shop=0, jaubija=0;
        int att=0;
        for(int i=v; i>0 && mas[i+1][0]!=kurs; i--){
//                cout<<i<<' '<<mas[i][2]<<endl;
            if(mas[i][2]==1)
                jaubija=1;

             if(!jaubija)
                att+=mas[i][1];

            if(i==E){
                shop=1;
                break;
            }
        }
//        cout<<att<<endl;
        if(!jaubija) att=INT_MAX;

        jaubija=0; int att2=0;
        if(mas[v][2]==1)
            jaubija=1;
        for(int i=v+1; i<=n && mas[i][0]!=kurs; i++){
            if(!jaubija)
                att2+=mas[i][1];
            if(mas[i][2]==1)
                jaubija=1;
            if(i==E){
                shop=1; break;
            }
        }

        if(!jaubija)
            att2=INT_MAX;

//        cout<<att<<' '<<att2<<endl;

        if(shop)
            cout<<"escaped"<<endl;
        else if(att==att2 && att2==INT_MAX)
            cout<<"oo"<<endl;
        else
            cout<<min(att, att2)<<endl;

    }

    return 0;
}
/*

5 2 3 1
1 2 1
2 3
1
3 4 1
4 5 1
2 4


*/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...