Submission #1345044

#TimeUsernameProblemLanguageResultExecution timeMemory
1345044yc11Stranded Far From Home (BOI22_island)C++20
0 / 100
798 ms12832 KiB
#include<bits/stdc++.h>

using namespace std;
vector<int> n2;
struct node{
    int s,e,m,s1,m1,m2;
    node *l,*r;
    node(int _s, int _e):
        s(_s),e(_e),m((_s+_e)/2),s1(0),m1(0),m2(0){
            if (s!=e){
                l = new node(s,m);
                r = new node (m+1,e);
            }
        }
    void build(){
        if (s==e){
            s1  = n2[s];
            m1 = n2[s];
            m2 = s;
            return;
        }
        l->build();
        r->build();
        s1 = l->s1+r->s1;
        if (l->m1>r->m1){
            m2=l->m2;
            m1 = l->m1;
        }
        else{
            m2 = r->m2;
            m1 = r->m1;
        }

    }
    pair<pair<int,int> ,int>  query(int x,int y){
        if (x>e or y<s) return make_pair(make_pair(0,-1),0);
        if (x<=s and y>=e) return make_pair(make_pair(m1,m2),s1);
        pair<pair<int,int> ,int> a = l->query(x,y);
        pair<pair<int,int> ,int> b = r->query(x,y);
        pair<int,int> c;
        if (a.first.first>b.first.first) c= a.first;
        else c = b.first;
        return make_pair(c,a.second+b.second);
    }
};
signed main(){
    int n,k;
    vector<vector<int> > n1;

    cin>>n>>k;
    n1.resize(n);
    n2.resize(n);
    for (int i = 0;i<n;i++) cin>>n2[i];
    for (int i = 0;i<k;i++){
        int a,b;
        cin>>a>>b;
        n1[a-1].push_back(b-1);
        n1[b-1].push_back(a-1);
            }
   
     string ans = "";
   
    for (int i = 0;i<n;i++) ans = ans+"0";
    ans[0] = '1';
    


    cout<<ans;

    return 0;

}
#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...