답안 #787524

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
787524 2023-07-19T09:01:16 Z Sohsoh84 Roller Coaster Railroad (IOI16_railroad) C++17
0 / 100
37 ms 6772 KB
#include "railroad.h"
#include <bits/stdc++.h>

typedef long long ll;

using namespace std;

#define all(x)		(x).begin(), (x).end()
#define debug(x)	cerr << #x << ": " << x << endl;
#define sep		' '

const ll MAXN = 1e6 + 10;
const ll INF = 1e18;

ll f[MAXN], n, m;
vector<ll> comp_vec;
ll dp[MAXN][20];

inline int ind(ll x) {
	return lower_bound(all(comp_vec), x) - comp_vec.begin() + 1;
}

ll plan_roller_coaster(vector<int> s, vector<int> t) {
	n = s.size();

	int max_t = 0;
	for (int i = 0; i < n; i++) {
		if (s[i] < s[max_t])
			max_t = i;
		if (s[i] == s[max_t] && t[i] > t[max_t])
			max_t = i;
	}

	for (int mask = 1; mask < (1 << n); mask++) {
		vector<int> vec;
		for (int v = 0; v < n; v++)
			if (mask >> v & 1)
				vec.push_back(v);
	

		if (int(vec.size()) < 2) {
			if (vec.front() != max_t) dp[mask][vec.front()] = INF;
			continue;
		}

		for (int e : vec) {
			dp[mask][e] = INF;
			for (int e2 : vec) {
				if (e == e2) continue;
				dp[mask][e] = min(dp[mask][e], dp[mask ^ (1 << e)][e2] + max(0, t[e2] - s[e]));
			}
		}
	}

	ll ans = INF;
	for (int i = 0; i < n; i++)
		ans = min(ans, dp[(1 << n) - 1][i]);
	return ans;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB n = 2
2 Correct 0 ms 212 KB n = 2
3 Correct 1 ms 212 KB n = 2
4 Correct 0 ms 212 KB n = 2
5 Correct 0 ms 212 KB n = 2
6 Correct 1 ms 212 KB n = 2
7 Correct 0 ms 212 KB n = 3
8 Correct 1 ms 212 KB n = 3
9 Correct 0 ms 212 KB n = 3
10 Correct 0 ms 340 KB n = 8
11 Correct 0 ms 340 KB n = 8
12 Correct 1 ms 340 KB n = 8
13 Correct 1 ms 340 KB n = 8
14 Correct 1 ms 340 KB n = 8
15 Correct 1 ms 340 KB n = 8
16 Incorrect 0 ms 340 KB answer is not correct: 866884738 instead of 683915859
17 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB n = 2
2 Correct 0 ms 212 KB n = 2
3 Correct 1 ms 212 KB n = 2
4 Correct 0 ms 212 KB n = 2
5 Correct 0 ms 212 KB n = 2
6 Correct 1 ms 212 KB n = 2
7 Correct 0 ms 212 KB n = 3
8 Correct 1 ms 212 KB n = 3
9 Correct 0 ms 212 KB n = 3
10 Correct 0 ms 340 KB n = 8
11 Correct 0 ms 340 KB n = 8
12 Correct 1 ms 340 KB n = 8
13 Correct 1 ms 340 KB n = 8
14 Correct 1 ms 340 KB n = 8
15 Correct 1 ms 340 KB n = 8
16 Incorrect 0 ms 340 KB answer is not correct: 866884738 instead of 683915859
17 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 37 ms 6772 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB n = 2
2 Correct 0 ms 212 KB n = 2
3 Correct 1 ms 212 KB n = 2
4 Correct 0 ms 212 KB n = 2
5 Correct 0 ms 212 KB n = 2
6 Correct 1 ms 212 KB n = 2
7 Correct 0 ms 212 KB n = 3
8 Correct 1 ms 212 KB n = 3
9 Correct 0 ms 212 KB n = 3
10 Correct 0 ms 340 KB n = 8
11 Correct 0 ms 340 KB n = 8
12 Correct 1 ms 340 KB n = 8
13 Correct 1 ms 340 KB n = 8
14 Correct 1 ms 340 KB n = 8
15 Correct 1 ms 340 KB n = 8
16 Incorrect 0 ms 340 KB answer is not correct: 866884738 instead of 683915859
17 Halted 0 ms 0 KB -