답안 #1005694

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1005694 2024-06-22T19:11:17 Z Dan4Life 봉쇄 시간 (IOI23_closing) C++17
0 / 100
104 ms 33224 KB
#include "closing.h"
#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define sz(a) (int)a.size()
#define all(a) begin(a),end(a)

using ll = long long;
using ar = array<int,2>;

const int mxN = (int)3e5+10;
ll n, dis[2][mxN];
vector<pair<int,int>> adj[mxN];

void dfs(int s, int p, int t){
	for(auto [u,w] : adj[s]){
		if(u==p) continue; 
		dis[t][u] = dis[t][s]+w; dfs(u,s,t);
	}
}

int max_score(int N, int X, int Y, ll K, vector<int> U, vector<int> V, vector<int> W){
	n = N; int ans = 0;
	for(int i = 0; i < n; i++){
		adj[i].clear();
		dis[0][i]=dis[1][i]=0;
	}
	for(int i = 0; i < n; i++){
		auto [a,b,c] = tie(U[i],V[i],W[i]);
		adj[a].pb({b,c}), adj[b].pb({a,c});
	}
	dfs(X,-1,0); dfs(Y,-1,1);
	priority_queue<ar,vector<ar>,greater<ar>> pq;
	while(sz(pq)) pq.pop();
	for(int i = 0; i < n; i++){
		int mn = min(dis[0][i],dis[1][i]);
		int mx = max(dis[0][i],dis[1][i]);
		pq.push({mn,mx});
	}
	while(sz(pq)){
		auto [sum,mx] = pq.top(); pq.pop();
		if(K<sum) break;
		K-=sum; ans++;
		//if(mx!=-1) pq.push({mx-sum,-1});
	}
    return ans;
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 10840 KB 1st lines differ - on the 1st token, expected: '6', found: '5'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 104 ms 33224 KB 1st lines differ - on the 1st token, expected: '451', found: '200000'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 8 ms 21596 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 8 ms 21596 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 8 ms 21596 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 10840 KB 1st lines differ - on the 1st token, expected: '6', found: '5'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 10840 KB 1st lines differ - on the 1st token, expected: '6', found: '5'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 10840 KB 1st lines differ - on the 1st token, expected: '6', found: '5'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 10840 KB 1st lines differ - on the 1st token, expected: '6', found: '5'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 10840 KB 1st lines differ - on the 1st token, expected: '6', found: '5'
2 Halted 0 ms 0 KB -