Submission #838408

# Submission time Handle Problem Language Result Execution time Memory
838408 2023-08-26T19:36:43 Z beaboss Journey (NOI18_journey) C++14
20 / 100
1 ms 596 KB
// Source: https://oj.uz/problem/view/NOI18_journey
// 

#include "bits/stdc++.h"

using namespace std;

#define s second
#define f first
#define pb push_back

typedef long long ll;

typedef pair<ll, ll> pii;
typedef vector<pii> vpii;

typedef vector<ll> vi;

#define FOR(i, a, b) for (ll i = (a); i<b; i++)

const ll N = 1e4 + 10;
const ll D = 404;
vpii adj[N];
ll in[N];
ll dp[N][D];

int main() {
	ios::sync_with_stdio(false);
	cin.tie(nullptr);

	ll n, m, h;
	cin >> n >> m >> h;

	FOR(i, 0, n - 1) {
		FOR(j, 0, h) {
			ll w, c;
			cin >> c >> w;
			if (c < i) continue;
			adj[i].pb({c, w});
		}
	}

	dp[0][0]=1;


	FOR(cur, 0, n-1) {

		for (auto val: adj[cur]) {
			ll nxt, wt;
			tie(nxt, wt) = val;

			ll cur_sum = 0;
			for (ll i = 0; i + wt < m; i++) {
				cur_sum = min(cur_sum + dp[cur][i], (ll) 5e8 + 1);
				dp[nxt][i + wt] = min(dp[nxt][i + wt] + cur_sum, (ll) 5e8 + 1); 
			}

		}

	
	}

	FOR(i, 0, m) {
		if (i != m-1) assert(dp[n-1][i] <= dp[n-1][i+1] && dp[n-1][i] >= 0);
		cout << min(dp[n-1][i], (ll) 5e8 + 1) << endl;
	}
	// cout << endl;
}












# Verdict Execution time Memory Grader output
1 Correct 1 ms 468 KB Output is correct
2 Correct 1 ms 468 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 596 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 468 KB Output is correct
2 Correct 1 ms 468 KB Output is correct
3 Incorrect 0 ms 596 KB Output isn't correct
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 468 KB Output is correct
2 Correct 1 ms 468 KB Output is correct
3 Incorrect 0 ms 596 KB Output isn't correct
4 Halted 0 ms 0 KB -