이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "dungeons.h"
#include <vector>
#include<bits/stdc++.h>
using namespace std;
#define vi vector<int>
using ll=long long;
#define vl vector<long long>
#define vii vector<vi>
#define vll vector<vl>
#define pl pair<ll,ll>
ll INF=1e9;
vl s;
vl p;
vl w;
vl l;
ll n;
ll ss;
vii wg;
vl prize_win;
void win_dfs(int node, ll cum){
prize_win[node]=cum;
for(auto child:wg[node]){
win_dfs(child,cum+ss);
}
}
vector<vector<pair<ll,ll>>> dp;
void init(int N, std::vector<int> S, std::vector<int> P, std::vector<int> W, std::vector<int> L) {
n=N;
wg.resize(n+1);
s.resize(n+1);
w.resize(n+1);
p.resize(n+1);
l.resize(n+1);
ss=S[0];
prize_win.resize(n+1);
for(int i=0;i<n;i++){
wg[w[i]].push_back(i);
s[i]=S[i];
p[i]=P[i];
w[i]=W[i];
l[i]=L[i];
}
win_dfs(n,0ll);
dp.resize(30,vector<pl>(n+1));
for(int i=0;i<n;i++){
dp[0][i]=pl(p[i],l[i]);
}
dp[0][n]=pl(0,n);
ll val=1;
for(int pow=1;pow<30;pow++){
for(int i=0;i<n;i++){
auto o=dp[pow-1][i];
dp[pow][i]=pl(min(o.first+dp[pow-1][o.second].first,INF),dp[pow-1][o.second].second);
}
dp[pow][n]=pl(0,n);
}
return;
}
ll solve(ll x, ll z, int pow){
if(x==n)return z;
if(z>=ss)return z+prize_win[x];
if(pow==0){
return z+dp[0][x].first+prize_win[dp[0][x].second];
}
if(dp[pow-1][x].first+z<ss)return solve(dp[pow-1][x].second,dp[pow-1][x].first +z, pow-1);
else {
return solve(x,z,pow-1);
}
}
long long simulate(int X, int Z) {
return solve(X,Z, 29);
}
컴파일 시 표준 에러 (stderr) 메시지
dungeons.cpp: In function 'void init(int, std::vector<int>, std::vector<int>, std::vector<int>, std::vector<int>)':
dungeons.cpp:50:5: warning: unused variable 'val' [-Wunused-variable]
50 | ll val=1;
| ^~~
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |