제출 #1314669

#제출 시각아이디문제언어결과실행 시간메모리
1314669joshjuiceJourney (NOI18_journey)C++20
100 / 100
60 ms7224 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define rep(x, a, b) for(auto x=a;(a<b?x<b:x>b);(a<b?x++:x--)) #define all(a) a.begin(), a.end() #define srtvc(a) sort(all(a)) #define bcsrtvc(a) sort(all(a), greater<__typeof__(a[0])>()) #define ppf pop_front #define ppb pop_back #define pf push_front #define pb push_back #define ef emplace_front #define eb emplace_back #define fr first #define sc second #define pq priority_queue #define pii pair<int, int> #define vc vector #define dq deque #define sz(a) a.size() #define mnto(x,y) x = min(x, (__typeof__(x))y) #define mxto(x,y) x = max(x, (__typeof__(x))y) #define setval(arr, x) memset(arr, x, sizeof(arr)) template<typename T> using vv = vc<vc<T>>; const int MX = 5e8+1; int32_t main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n, m, h; cin >> n >> m >> h; vc<int> arr(n*m, 0); arr[0] = 1; rep(i, 0, n-1) { rep(j, 0, h) { int c, q; cin >> c >> q; if (c <= i) continue; int fl = 0; rep(k, q, m) { fl = min(MX, fl + arr[i*m + k - q]); arr[c*m+k] = min(MX, arr[c*m + k] + fl); } } } rep(i, 0, m) cout << arr[(n-1)*m+i] << ' '; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...