Submission #1242274

#TimeUsernameProblemLanguageResultExecution timeMemory
1242274AlperenT_Closing Time (IOI23_closing)C++20
8 / 100
95 ms46780 KiB
#include "closing.h"
#include <bits/stdc++.h> 
#pragma GCC optimize("O3,unroll-loops") 
#pragma GCC target("avx2") 
#define pb push_back
#define F first
#define pii pair<int,int> 
#define all(a) a.begin(),a.end()
#define S second 
#define sz(a) (int)a.size()
#define rep(i , a , b) for(int i = (a) ; i <= (b) ; i++)
#define per(i , a , b) for(int i = (a) ; i >= (b) ; i--)
#define ld double
#define ll long long 
using namespace std ;
const ll maxn = 1e6 + 10  ,s = 1000 , inf = 1e18 + 10 , mod = 998244353;
int par[maxn] , r[maxn]  , ma[maxn] , mark[maxn] , mb[maxn] ; 
ll dis[maxn] , a[maxn] , b[maxn] ; 
vector <pii> G[maxn] ;
void dfs(int v){
    for(auto[u,w]  : G[v]){
        if(u == par[v])continue ;
        par[u] = v; 
        dfs(u) ;;
    }
}
void dist(int v, int p = -1){
    for(auto [u,w] : G[v]){
        if(u == p)continue ;
        dis[u ]= dis[v] + w ;
        dist(u , v); 
    }
}
void dfs2(int v, int p =-1 ){
    mark[v] =1 ;
    for(auto[u,w] : G[v]){
        if(mark[u] == 1)continue ;
        r[u] = r[v]; 
        dfs2(u ,v );  
    }
}

int max_score(int n, int x, int y, long long K,std::vector<int> U, std::vector<int> V, std::vector<int> W){
    rep(i , 0 ,n)G[i].clear() ;
    rep(i , 0 , n-2){
        G[V[i]].pb({U[i],W[i]}); 
        G[U[i]].pb({V[i] , W[i]}) ;
    }
    dis[x] =0 ;
    dist(x); 
    rep(i ,0, n-1){
        a[i] = dis[i] ;
    }
    dis[y] = 0;
    dist(y) ;
    vector <ll> vec ;
    rep(i ,0  ,n-1){
        b[i] = dis[i] ;
        vec.pb(min(a[i] , b[i])) ;
    }
    sort(all(vec));
    int ans =0 ;
    rep(i , 0, sz(vec)-1){
        if(K >= vec[i]){
            K-=vec[i] ;
            ans ++ ;
        }
    }
    return ans;
}
#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...