Submission #840908

#TimeUsernameProblemLanguageResultExecution timeMemory
840908HD1Closing Time (IOI23_closing)C++17
8 / 100
131 ms50864 KiB
#include "closing.h"
#include<bits/stdc++.h>
#define all(x) x.begin(),x.end()
#define rall(x) x.rbegin(),x.rend()
#define sz(x) ll(x.size())
#define ff first
#define ss second
#define pb push_back
using namespace std;
typedef long long ll;
typedef long double ld;
typedef pair<int, ll> ii;
const int MAX=1e6;
const ll mod=1e9+7;
ll distx[MAX], disty[MAX];
vector<ii>gfo[MAX];
vector<ll> ans;
void dfsx(int u, int f){
    for(auto x:gfo[u]){
        int v=x.ff;
        ll w1=x.ss;
        if(v!=f){
            distx[v]=distx[u]+w1;
            dfsx(v,u);
        }
    }
    return;
}
void dfsy(int u, int f){
    for(auto x:gfo[u]){
        int v=x.ff;
        ll w1=x.ss;
        if(v!=f){
            disty[v]=disty[u]+w1;
            dfsy(v,u);
        }
    }
    return;
}
void clen(int n){
    ans.clear();
    for(int i=0; i<=n; i++){
        gfo[i].clear();
        distx[i]=0;
        disty[i]=0;
    }
    return;
}
int max_score(int N, int X, int Y, long long K, vector<int> U, vector<int> V, vector<int> W){
    for(ll i=0; i<sz(U) ; i++){
        gfo[U[i]].pb({V[i],W[i]});
        gfo[V[i]].pb({U[i],W[i]});
    }
    dfsx(X,X);
    dfsy(Y,Y);
    for(int i=0; i<N; i++){
        ans.pb(distx[i]);
        ans.pb(disty[i]);
    }
    sort(all(ans));
    ll cont=0, sum=0;
    for(int x:ans){
        sum+=x;
        if(sum<=K)cont++;
        else break;
    }
    clen(N);
    return cont;
}
#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...
#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...