답안 #571337

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
571337 2022-06-01T20:11:24 Z sidon 치료 계획 (JOI20_treatment) C++17
0 / 100
3000 ms 14332 KB
#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);
}
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 3071 ms 14332 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Incorrect 0 ms 212 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Incorrect 0 ms 212 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 3071 ms 14332 KB Time limit exceeded
2 Halted 0 ms 0 KB -