Submission #1240689

#TimeUsernameProblemLanguageResultExecution timeMemory
1240689dosts봉쇄 시간 (IOI23_closing)C++20
0 / 100
1094 ms31668 KiB
#include "closing.h"
#include <bits/stdc++.h>
#pragma GCC optimize("O3,unroll-loops")
#pragma GCC target("avx2")
#define int long long
#define pii pair<int,int>
#define vi vector<int>
#define ff first
#define ss second
#define sp << " " <<
#define all(x) x.begin(),x.end()
#define big(x) ((int)(x.size()))
using namespace std;
const int MOD = 1e9+7, LIM = 2e5+1, inf = 2e18;

vector<pii> edges[LIM];

void dfs(int node,vi& dist,int cur = 0) {
    dist[node] = cur;
    for (auto it : edges[node]) {
        if (cur+it.ss < dist[it.ff]) dfs(it.ff,dist,cur+it.ss);
    }
}

signed max_score(signed N, signed X, signed Y, int K,
              std::vector<signed> U, std::vector<signed> V, std::vector<signed> W)
{
    int M = big(U);
    for (int i = 0;i<M;i++) { 
        edges[U[i]].push_back({V[i],W[i]});
        edges[V[i]].push_back({U[i],W[i]});
    }
    vi distX(N,inf),distY(N,inf);
    dfs(X,distX),dfs(Y,distY);
    if (distX[Y] > 2*K) {
        vi v;
        for (int i = 0;i<N;i++) v.push_back(distX[i]),v.push_back(distY[i]);
        sort(all(v));
        int ans = 0;
        for (auto it : v) {
            if (it <= K) {
                K-=it;
                ans++;
            }else break;
        }
        return ans;
    }
}

Compilation message (stderr)

closing.cpp: In function 'int max_score(int, int, int, long long int, std::vector<int>, std::vector<int>, std::vector<int>)':
closing.cpp:48:1: warning: control reaches end of non-void function [-Wreturn-type]
   48 | }
      | ^
#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...