제출 #1232766

#제출 시각아이디문제언어결과실행 시간메모리
1232766m5588ohammed봉쇄 시간 (IOI23_closing)C++20
8 / 100
79 ms20268 KiB
#include "closing.h"
#include <bits/stdc++.h>
using namespace std;
vector <array<long long,2>> v[200005];
long long n,x,y,k,ans;
void calc(){
    priority_queue <array<long long,4>> qu;
    qu.push({0,x,-1,0});
    qu.push({0,y,-1,1});
    while(!qu.empty()){
        auto [mydis,i,last,u]=qu.top();
        mydis*=-1;
        qu.pop();
        if(k>=mydis){
            ans++;
            k-=mydis;
        }
        else continue;
        for(auto [j,c]:v[i]){
            if(j==last) continue;
            qu.push({(mydis+c)*-1,j,i,u});
        }
    }
    return;
}
int max_score(int N, int X, int Y, long long K,vector<int> U, vector<int> V, vector<int> W)
{
    n=N,x=X,y=Y,k=K;
    ans=0;
    for(int i=0;i<n;i++) v[i].clear();
    for(int i=0;i<n-1;i++){
        v[U[i]].push_back({V[i],W[i]});
        v[V[i]].push_back({U[i],W[i]});
    }
    calc();
    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...