Submission #822290
Source Code Expand
#include <algorithm>
#include <array>
#include <complex>
#include <cassert>
#include <cctype>
#include <climits>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <ctime>
#include <functional>
#include <iomanip>
#include <iostream>
#include <map>
#include <memory>
#include <queue>
#include <set>
#include <string>
#include <tuple>
#include <vector>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
inline bool valid(const int x, const int r) { return 0 <= x && x < r; }
void initIOStream() {
ios::sync_with_stdio(false); // stdinなどと同期しない
cin.tie(0); // cinの前にflushしない
cout.setf(ios::fixed);
cout.precision(10); // 四捨五入して指定桁数表示
}
int N, M;
vector<int> P;
vector<int> L;
vector<int> B;
vector<int> C;
vector<int> minv;
vector<vector<int> > G;
int ans;
int func1(int p){
//cout << "p = " << p << endl;
int res = 1 << 28;
if(!L[p]){
for(int i = 0, size = G[p].size(); i < size; ++i){
res = min(res, func1(G[p][i]));
}
}else{
res = L[p];
}
minv[p] = res;
return res;
}
void func2(int p, int q){
if(L[p]){
return;
}
for(int i = 0, size = G[p].size(); i < size; ++i){
ans += minv[G[p][i]] - q;
func2(G[p][i], max(minv[G[p][i]], q));
}
}
int main() {
initIOStream();
cin >> N >> M;
P.resize(N - 1);
for(int i = 0; i < N - 1; ++i){
cin >> P[i];
}
B.resize(M);
C.resize(M);
for(int i = 0; i < M; ++i){
cin >> B[i] >> C[i];
}
G = vector<vector<int> >(N, vector<int>());
for(int i = 0, size = P.size(); i < size; ++i){
G[P[i]].emplace_back(i + 1);
}
L = vector<int>(N, 0);
for(int i = 0; i < M; ++i){
L[B[i]] = C[i];
}
// for(const auto& l : L) cout << l << endl;
// for(int i = 0; i < G.size(); ++i){
// cout << i << ": ";
// for(const auto& e : G[i]){
// cout << e << " ";
// }
// cout << endl;
// }
// return 0;
minv.resize(N);
func1(0);
// for(const auto& v : minv) cout << v << endl;
ans = 0;
func2(0, 0);
cout << ans << endl;
}
Submission Info
| Submission Time | |
|---|---|
| Task | B - PackDrop |
| User | lawel3110 |
| Language | C++14 (GCC 5.4.1) |
| Score | 300 |
| Code Size | 2204 Byte |
| Status | AC |
| Exec Time | 5 ms |
| Memory | 384 KiB |
Judge Result
| Set Name | All | ||
|---|---|---|---|
| Score / Max Score | 300 / 300 | ||
| Status |
|
| Set Name | Test Cases |
|---|---|
| All | 00_sample_1, 00_sample_2, 00_sample_3, 10_random_00_n_5, 10_random_01_n_10, 10_random_02_n_2, 10_random_03_n_7, 10_random_04_n_6, 20_random_00_n_64, 20_random_01_n_95, 20_random_02_n_20, 20_random_03_n_33, 20_random_04_n_91, 30_random_00_n_793, 30_random_01_n_611, 30_random_02_n_852, 40_random_00_n_1000, 40_random_01_n_1000, 50_edge_one_00_n_11, 50_edge_one_01_n_101, 50_edge_one_02_n_999, 98_almost_straight_00_n_1000, 98_almost_straight_01_n_1000, 98_almost_straight_02_n_1000, 99_straight_00_n_10, 99_straight_01_n_100, 99_straight_02_n_1000 |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00_sample_1 | AC | 4 ms | 256 KiB |
| 00_sample_2 | AC | 4 ms | 256 KiB |
| 00_sample_3 | AC | 4 ms | 256 KiB |
| 10_random_00_n_5 | AC | 4 ms | 256 KiB |
| 10_random_01_n_10 | AC | 4 ms | 256 KiB |
| 10_random_02_n_2 | AC | 4 ms | 256 KiB |
| 10_random_03_n_7 | AC | 4 ms | 256 KiB |
| 10_random_04_n_6 | AC | 4 ms | 256 KiB |
| 20_random_00_n_64 | AC | 5 ms | 256 KiB |
| 20_random_01_n_95 | AC | 4 ms | 256 KiB |
| 20_random_02_n_20 | AC | 4 ms | 256 KiB |
| 20_random_03_n_33 | AC | 4 ms | 256 KiB |
| 20_random_04_n_91 | AC | 4 ms | 256 KiB |
| 30_random_00_n_793 | AC | 4 ms | 256 KiB |
| 30_random_01_n_611 | AC | 4 ms | 256 KiB |
| 30_random_02_n_852 | AC | 4 ms | 256 KiB |
| 40_random_00_n_1000 | AC | 4 ms | 256 KiB |
| 40_random_01_n_1000 | AC | 4 ms | 256 KiB |
| 50_edge_one_00_n_11 | AC | 4 ms | 256 KiB |
| 50_edge_one_01_n_101 | AC | 4 ms | 256 KiB |
| 50_edge_one_02_n_999 | AC | 4 ms | 384 KiB |
| 98_almost_straight_00_n_1000 | AC | 4 ms | 384 KiB |
| 98_almost_straight_01_n_1000 | AC | 4 ms | 384 KiB |
| 98_almost_straight_02_n_1000 | AC | 4 ms | 384 KiB |
| 99_straight_00_n_10 | AC | 4 ms | 256 KiB |
| 99_straight_01_n_100 | AC | 4 ms | 256 KiB |
| 99_straight_02_n_1000 | AC | 4 ms | 384 KiB |