Submission #105459

# Submission time Handle Problem Language Result Execution time Memory
105459 2019-04-12T12:28:04 Z polyfish Roller Coaster Railroad (IOI16_railroad) C++14
34 / 100
173 ms 9024 KB
//Pantyhose(black) + glasses = infinity

#include <bits/stdc++.h>
using namespace std;
 
#define debug(x) cerr << #x << " = " << x << '\n';
#define BP() cerr << "OK!\n";
#define PR(A, n) {cerr << #A << " = "; for (int _=1; _<=n; ++_) cerr << A[_] << ' '; cerr << '\n';}
#define PR0(A, n) {cerr << #A << " = "; for (int _=0; _<n; ++_) cerr << A[_] << ' '; cerr << '\n';}
#define FILE_NAME "data"

const int64_t INF = 1e18;

int n;
vector<pair<int, int> > a;
int64_t f[1<<16][16];

int64_t dp(int mask, int last) {
	if (__builtin_popcount(mask)==n)
		return 0;

	if (f[mask][last]>-1)
		return f[mask][last];

	int64_t res = INF;

	for (int i=0; i<n; ++i) {
		if (((mask>>i) & 1)==0) {
			int new_mask = mask | (1<<i);
			// if (mask==11 && last==1 && i==2)
			// 	debug();
			res = min(res, dp(new_mask, i) + max(0, a[last].second - a[i].first));
		}
	}

	return f[mask][last] = res;
}

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

	for (int i=0; i<n; ++i)
		a[i] = {s[i], t[i]};
	sort(a.begin(), a.end());

	if (n<=16) {
		memset(f, -1, sizeof(f));
		// debug(dp(1, 0));

		int64_t res = INF;
		for (int i=0; i<n; ++i)
			res = min(res, dp(1<<i, i));
		
		return res;
	}
}

Compilation message

railroad.cpp: In function 'int64_t plan_roller_coaster(std::vector<int>, std::vector<int>)':
railroad.cpp:57:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
# Verdict Execution time Memory Grader output
1 Correct 9 ms 8548 KB n = 2
2 Correct 10 ms 8576 KB n = 2
3 Correct 9 ms 8576 KB n = 2
4 Correct 9 ms 8576 KB n = 2
5 Correct 10 ms 8604 KB n = 2
6 Correct 10 ms 8576 KB n = 2
7 Correct 10 ms 8448 KB n = 3
8 Correct 10 ms 8576 KB n = 3
9 Correct 9 ms 8576 KB n = 3
10 Correct 10 ms 8576 KB n = 8
11 Correct 9 ms 8576 KB n = 8
12 Correct 11 ms 8576 KB n = 8
13 Correct 11 ms 8576 KB n = 8
14 Correct 10 ms 8576 KB n = 8
15 Correct 11 ms 8576 KB n = 8
16 Correct 9 ms 8576 KB n = 8
17 Correct 9 ms 8576 KB n = 8
18 Correct 10 ms 8576 KB n = 8
19 Correct 11 ms 8576 KB n = 3
20 Correct 9 ms 8576 KB n = 7
21 Correct 10 ms 8576 KB n = 8
22 Correct 10 ms 8576 KB n = 8
23 Correct 10 ms 8576 KB n = 8
24 Correct 11 ms 8576 KB n = 8
25 Correct 13 ms 8568 KB n = 8
# Verdict Execution time Memory Grader output
1 Correct 9 ms 8548 KB n = 2
2 Correct 10 ms 8576 KB n = 2
3 Correct 9 ms 8576 KB n = 2
4 Correct 9 ms 8576 KB n = 2
5 Correct 10 ms 8604 KB n = 2
6 Correct 10 ms 8576 KB n = 2
7 Correct 10 ms 8448 KB n = 3
8 Correct 10 ms 8576 KB n = 3
9 Correct 9 ms 8576 KB n = 3
10 Correct 10 ms 8576 KB n = 8
11 Correct 9 ms 8576 KB n = 8
12 Correct 11 ms 8576 KB n = 8
13 Correct 11 ms 8576 KB n = 8
14 Correct 10 ms 8576 KB n = 8
15 Correct 11 ms 8576 KB n = 8
16 Correct 9 ms 8576 KB n = 8
17 Correct 9 ms 8576 KB n = 8
18 Correct 10 ms 8576 KB n = 8
19 Correct 11 ms 8576 KB n = 3
20 Correct 9 ms 8576 KB n = 7
21 Correct 10 ms 8576 KB n = 8
22 Correct 10 ms 8576 KB n = 8
23 Correct 10 ms 8576 KB n = 8
24 Correct 11 ms 8576 KB n = 8
25 Correct 13 ms 8568 KB n = 8
26 Correct 10 ms 8576 KB n = 8
27 Correct 10 ms 8576 KB n = 8
28 Correct 10 ms 8576 KB n = 8
29 Correct 122 ms 8568 KB n = 16
30 Correct 128 ms 8704 KB n = 16
31 Correct 133 ms 8568 KB n = 16
32 Correct 129 ms 8668 KB n = 16
33 Correct 137 ms 8696 KB n = 16
34 Correct 154 ms 8696 KB n = 16
35 Correct 132 ms 8568 KB n = 16
36 Correct 64 ms 8600 KB n = 15
37 Correct 9 ms 8576 KB n = 8
38 Correct 128 ms 8576 KB n = 16
39 Correct 173 ms 8572 KB n = 16
40 Correct 10 ms 8576 KB n = 9
41 Correct 128 ms 8696 KB n = 16
42 Correct 130 ms 8696 KB n = 16
43 Correct 164 ms 8576 KB n = 16
44 Correct 10 ms 8576 KB n = 9
45 Correct 63 ms 8576 KB n = 15
46 Correct 127 ms 8696 KB n = 16
47 Correct 138 ms 8564 KB n = 16
48 Correct 135 ms 8576 KB n = 16
# Verdict Execution time Memory Grader output
1 Incorrect 89 ms 9024 KB answer is not correct: 1 instead of 0
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 9 ms 8548 KB n = 2
2 Correct 10 ms 8576 KB n = 2
3 Correct 9 ms 8576 KB n = 2
4 Correct 9 ms 8576 KB n = 2
5 Correct 10 ms 8604 KB n = 2
6 Correct 10 ms 8576 KB n = 2
7 Correct 10 ms 8448 KB n = 3
8 Correct 10 ms 8576 KB n = 3
9 Correct 9 ms 8576 KB n = 3
10 Correct 10 ms 8576 KB n = 8
11 Correct 9 ms 8576 KB n = 8
12 Correct 11 ms 8576 KB n = 8
13 Correct 11 ms 8576 KB n = 8
14 Correct 10 ms 8576 KB n = 8
15 Correct 11 ms 8576 KB n = 8
16 Correct 9 ms 8576 KB n = 8
17 Correct 9 ms 8576 KB n = 8
18 Correct 10 ms 8576 KB n = 8
19 Correct 11 ms 8576 KB n = 3
20 Correct 9 ms 8576 KB n = 7
21 Correct 10 ms 8576 KB n = 8
22 Correct 10 ms 8576 KB n = 8
23 Correct 10 ms 8576 KB n = 8
24 Correct 11 ms 8576 KB n = 8
25 Correct 13 ms 8568 KB n = 8
26 Correct 10 ms 8576 KB n = 8
27 Correct 10 ms 8576 KB n = 8
28 Correct 10 ms 8576 KB n = 8
29 Correct 122 ms 8568 KB n = 16
30 Correct 128 ms 8704 KB n = 16
31 Correct 133 ms 8568 KB n = 16
32 Correct 129 ms 8668 KB n = 16
33 Correct 137 ms 8696 KB n = 16
34 Correct 154 ms 8696 KB n = 16
35 Correct 132 ms 8568 KB n = 16
36 Correct 64 ms 8600 KB n = 15
37 Correct 9 ms 8576 KB n = 8
38 Correct 128 ms 8576 KB n = 16
39 Correct 173 ms 8572 KB n = 16
40 Correct 10 ms 8576 KB n = 9
41 Correct 128 ms 8696 KB n = 16
42 Correct 130 ms 8696 KB n = 16
43 Correct 164 ms 8576 KB n = 16
44 Correct 10 ms 8576 KB n = 9
45 Correct 63 ms 8576 KB n = 15
46 Correct 127 ms 8696 KB n = 16
47 Correct 138 ms 8564 KB n = 16
48 Correct 135 ms 8576 KB n = 16
49 Incorrect 89 ms 9024 KB answer is not correct: 1 instead of 0
50 Halted 0 ms 0 KB -