Submission #571337

#TimeUsernameProblemLanguageResultExecution timeMemory
571337sidonTreatment Project (JOI20_treatment)C++17
0 / 100
3071 ms14332 KiB
#include <bits/stdc++.h> using namespace std; #define int long long int INF = 1e18; signed main() { ios::sync_with_stdio(0), cin.tie(0); int N, M; cin >> N >> M; array<int, 4> a[M]; int c[M], p {}; for(auto &[R, L, T, C] : a) { cin >> T >> L >> R >> C; c[p++] = T; } sort(a, a + M); sort(c, c + M); set<array<int, 2>> s[2][M + 1]; int ans = INF, dp[M]; p = 0; for(auto [R, L, T, C] : a) { dp[p] = L < 2 ? 0 : INF; for(int i = 0; i < p; ++i) { int f = L + (T > a[i][2] ? T : -T) - 1; int v = a[i][0] + (T > a[i][2] ? a[i][2] : -a[i][2]); if(f <= v) dp[p] = min(dp[p], dp[i]); } dp[p] = min(dp[p] + C, INF); if(R == N) ans = min(ans, dp[p]); p++; } cout << (ans == INF ? -1 : ans); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...