Submission #4036092
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define mp make_pair
#define fi first
#define se second
#define FOR(i, a, b) for(int i=(a);i<(b);i++)
#define REP(i, n) FOR(i, 0, n)
#define RFOR(i, a, b) for(int i=(a);i>=(b);i--)
#define RREP(i, n) RFOR(i, n, 0)
#define MFOR(i, m) for(auto i=(m).begin();i!=(m).end();i++)
#define ALL(a) (a).begin(), (a).end()
#define SZ(x) ((int)(x).size())
typedef long long int ll;
typedef pair<int, int> P;
typedef pair<ll, ll> Pll;
typedef vector<int> vi;
typedef vector<vi> vvi;
typedef vector<ll> vll;
typedef vector<vll> vvll;
const double eps = 1e-10;
const int MOD = 1000000007;
const int INF = 1000000000;
const ll LINF = 1 << 30;
template<typename T>
void printv(vector<T> const& s) {
REP(i, SZ(s)) {
cout << s[i] << " ";
}
cout << endl;
}
void update(const vector<vi> &chi, vi &v, int x) {
REP(i, SZ(chi[x])) {
if(v[chi[x][i]] == INT_MAX) v[chi[x][i]] = v[x];
update(chi, v, chi[x][i]);
}
}
void propagate(const vector<vi> &chi, vi &v, int x) {
if(SZ(chi[x]) != 0) {
int mi = INT_MAX;
REP(i, SZ(chi[x])) {
propagate(chi, v, chi[x][i]);
mi = min(mi, v[chi[x][i]]);
}
v[x] = mi;
}
}
int main () {
cin.tie(0);
cout << setprecision(10);
int n, m; cin >> n >> m;
vector<int> par(n);
FOR(i, 1, n) cin >> par[i];
vector<vi> chi(n);
FOR(i, 1, n) {
chi[par[i]].pb(i);
}
vi v(n, INT_MAX);
v[0] = 0;
REP(i, m) {
int b, c; cin >> b >> c;
v[b] = c;
}
update(chi, v, 0);
propagate(chi, v, 0);
v[0] = 0;
ll cnt = 0;
FOR(i, 1, n) {
cnt += v[i] - v[par[i]];
}
cout << cnt << endl;
}
Submission Info
Submission Time |
|
Task |
B - PackDrop |
User |
kanra824 |
Language |
C++14 (GCC 5.4.1) |
Score |
300 |
Code Size |
1743 Byte |
Status |
AC |
Exec Time |
2 ms |
Memory |
384 KB |
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 |
1 ms |
256 KB |
00_sample_2 |
AC |
1 ms |
256 KB |
00_sample_3 |
AC |
1 ms |
256 KB |
10_random_00_n_5 |
AC |
1 ms |
256 KB |
10_random_01_n_10 |
AC |
1 ms |
256 KB |
10_random_02_n_2 |
AC |
1 ms |
256 KB |
10_random_03_n_7 |
AC |
1 ms |
256 KB |
10_random_04_n_6 |
AC |
1 ms |
256 KB |
20_random_00_n_64 |
AC |
1 ms |
256 KB |
20_random_01_n_95 |
AC |
1 ms |
256 KB |
20_random_02_n_20 |
AC |
1 ms |
256 KB |
20_random_03_n_33 |
AC |
1 ms |
256 KB |
20_random_04_n_91 |
AC |
1 ms |
256 KB |
30_random_00_n_793 |
AC |
2 ms |
256 KB |
30_random_01_n_611 |
AC |
2 ms |
256 KB |
30_random_02_n_852 |
AC |
2 ms |
256 KB |
40_random_00_n_1000 |
AC |
2 ms |
256 KB |
40_random_01_n_1000 |
AC |
2 ms |
256 KB |
50_edge_one_00_n_11 |
AC |
1 ms |
256 KB |
50_edge_one_01_n_101 |
AC |
1 ms |
256 KB |
50_edge_one_02_n_999 |
AC |
2 ms |
384 KB |
98_almost_straight_00_n_1000 |
AC |
2 ms |
384 KB |
98_almost_straight_01_n_1000 |
AC |
2 ms |
384 KB |
98_almost_straight_02_n_1000 |
AC |
2 ms |
384 KB |
99_straight_00_n_10 |
AC |
1 ms |
256 KB |
99_straight_01_n_100 |
AC |
1 ms |
256 KB |
99_straight_02_n_1000 |
AC |
2 ms |
384 KB |