Submission #140464

# Submission time Handle Problem Language Result Execution time Memory
140464 2019-08-03T07:59:49 Z bazsi700 Roller Coaster Railroad (IOI16_railroad) C++14
34 / 100
346 ms 152732 KB
#include <bits/stdc++.h>
#include "railroad.h"
using namespace std;

#define MOD 1000000007
#define ll long long int
#define vi vector<int>
#define vii vector< vector<int> >
#define PI 3.1415926535897932384626433832795
#define INF 9223372036854775807LL
#define hashA 1257958787
#define hashB 1539500609
#define endl "\n"

ll dp[17][17][66000];

ll plan_roller_coaster(vector<int> s, vector<int> t) {
	int n = s.size();
	for(int i = 0; i < 17; i++) {
		for(int k = 0; k < 17; k++) {
			for(int j = 0; j < 66000; j++) {
				dp[i][k][j] = INF;
			}
		}
	}
	vector<vector<int> > masks (17,vector<int>());
	for(int mask = 0; mask < (1<<n); mask++) {
		vector<int> setbits;
		for(int k = 0; k < n; k++) {
			if(mask&(1<<k)) {
				setbits.push_back(k);
			}
		}
		masks[setbits.size()].push_back(mask);
	}
	if(n <= 16) {
		for(int i = 0; i < n; i++) {
			dp[1][i][(1<<i)] = 0;
		}
		for(int i = 2; i <= n; i++) {
			for(int lst = 0; lst < n; lst++) {
				for(int mask : masks[i]) {
					if((mask&(1<<lst)) == 0) {
						continue;
					}
					vector<int> setbits;
					for(int k = 0; k < n; k++) {
						if(mask&(1<<k)) {
							setbits.push_back(k);
						}
					}
					int oldmask = mask^(1<<lst);
					for(int l : setbits) {
						if(l != lst) {
							dp[i][lst][mask] = min(dp[i][lst][mask],dp[i-1][l][oldmask]+max(0,t[l]-s[lst]));
						}
					}
				}
			}
		}
		ll ans = INF;
		for(int lst = 0; lst < n; lst++) {
			//cout << dp[n][lst][(1<<n)-1] << " ";
			ans = min(ans,dp[n][lst][(1<<n)-1]);
		}
		return ans;
	}
	return -1;
}
# Verdict Execution time Memory Grader output
1 Correct 120 ms 149624 KB n = 2
2 Correct 121 ms 149560 KB n = 2
3 Correct 123 ms 149596 KB n = 2
4 Correct 121 ms 149624 KB n = 2
5 Correct 121 ms 149616 KB n = 2
6 Correct 120 ms 149624 KB n = 2
7 Correct 121 ms 149624 KB n = 3
8 Correct 124 ms 149620 KB n = 3
9 Correct 119 ms 149584 KB n = 3
10 Correct 121 ms 149632 KB n = 8
11 Correct 120 ms 149652 KB n = 8
12 Correct 121 ms 149624 KB n = 8
13 Correct 121 ms 149624 KB n = 8
14 Correct 120 ms 149636 KB n = 8
15 Correct 120 ms 149548 KB n = 8
16 Correct 120 ms 149624 KB n = 8
17 Correct 123 ms 149624 KB n = 8
18 Correct 120 ms 149624 KB n = 8
19 Correct 120 ms 149612 KB n = 3
20 Correct 120 ms 149568 KB n = 7
21 Correct 120 ms 149596 KB n = 8
22 Correct 120 ms 149624 KB n = 8
23 Correct 120 ms 149624 KB n = 8
24 Correct 128 ms 149604 KB n = 8
25 Correct 135 ms 149752 KB n = 8
# Verdict Execution time Memory Grader output
1 Correct 120 ms 149624 KB n = 2
2 Correct 121 ms 149560 KB n = 2
3 Correct 123 ms 149596 KB n = 2
4 Correct 121 ms 149624 KB n = 2
5 Correct 121 ms 149616 KB n = 2
6 Correct 120 ms 149624 KB n = 2
7 Correct 121 ms 149624 KB n = 3
8 Correct 124 ms 149620 KB n = 3
9 Correct 119 ms 149584 KB n = 3
10 Correct 121 ms 149632 KB n = 8
11 Correct 120 ms 149652 KB n = 8
12 Correct 121 ms 149624 KB n = 8
13 Correct 121 ms 149624 KB n = 8
14 Correct 120 ms 149636 KB n = 8
15 Correct 120 ms 149548 KB n = 8
16 Correct 120 ms 149624 KB n = 8
17 Correct 123 ms 149624 KB n = 8
18 Correct 120 ms 149624 KB n = 8
19 Correct 120 ms 149612 KB n = 3
20 Correct 120 ms 149568 KB n = 7
21 Correct 120 ms 149596 KB n = 8
22 Correct 120 ms 149624 KB n = 8
23 Correct 120 ms 149624 KB n = 8
24 Correct 128 ms 149604 KB n = 8
25 Correct 135 ms 149752 KB n = 8
26 Correct 121 ms 149624 KB n = 8
27 Correct 121 ms 149676 KB n = 8
28 Correct 143 ms 149624 KB n = 8
29 Correct 312 ms 150008 KB n = 16
30 Correct 316 ms 150136 KB n = 16
31 Correct 311 ms 150136 KB n = 16
32 Correct 311 ms 150128 KB n = 16
33 Correct 314 ms 150040 KB n = 16
34 Correct 346 ms 150096 KB n = 16
35 Correct 336 ms 150080 KB n = 16
36 Correct 222 ms 149880 KB n = 15
37 Correct 122 ms 149724 KB n = 8
38 Correct 316 ms 149996 KB n = 16
39 Correct 322 ms 150168 KB n = 16
40 Correct 126 ms 149624 KB n = 9
41 Correct 318 ms 150108 KB n = 16
42 Correct 318 ms 150112 KB n = 16
43 Correct 317 ms 150176 KB n = 16
44 Correct 122 ms 149624 KB n = 9
45 Correct 209 ms 149872 KB n = 15
46 Correct 313 ms 150008 KB n = 16
47 Correct 315 ms 150124 KB n = 16
48 Correct 316 ms 150008 KB n = 16
# Verdict Execution time Memory Grader output
1 Incorrect 190 ms 152732 KB answer is not correct: -1 instead of 0
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 120 ms 149624 KB n = 2
2 Correct 121 ms 149560 KB n = 2
3 Correct 123 ms 149596 KB n = 2
4 Correct 121 ms 149624 KB n = 2
5 Correct 121 ms 149616 KB n = 2
6 Correct 120 ms 149624 KB n = 2
7 Correct 121 ms 149624 KB n = 3
8 Correct 124 ms 149620 KB n = 3
9 Correct 119 ms 149584 KB n = 3
10 Correct 121 ms 149632 KB n = 8
11 Correct 120 ms 149652 KB n = 8
12 Correct 121 ms 149624 KB n = 8
13 Correct 121 ms 149624 KB n = 8
14 Correct 120 ms 149636 KB n = 8
15 Correct 120 ms 149548 KB n = 8
16 Correct 120 ms 149624 KB n = 8
17 Correct 123 ms 149624 KB n = 8
18 Correct 120 ms 149624 KB n = 8
19 Correct 120 ms 149612 KB n = 3
20 Correct 120 ms 149568 KB n = 7
21 Correct 120 ms 149596 KB n = 8
22 Correct 120 ms 149624 KB n = 8
23 Correct 120 ms 149624 KB n = 8
24 Correct 128 ms 149604 KB n = 8
25 Correct 135 ms 149752 KB n = 8
26 Correct 121 ms 149624 KB n = 8
27 Correct 121 ms 149676 KB n = 8
28 Correct 143 ms 149624 KB n = 8
29 Correct 312 ms 150008 KB n = 16
30 Correct 316 ms 150136 KB n = 16
31 Correct 311 ms 150136 KB n = 16
32 Correct 311 ms 150128 KB n = 16
33 Correct 314 ms 150040 KB n = 16
34 Correct 346 ms 150096 KB n = 16
35 Correct 336 ms 150080 KB n = 16
36 Correct 222 ms 149880 KB n = 15
37 Correct 122 ms 149724 KB n = 8
38 Correct 316 ms 149996 KB n = 16
39 Correct 322 ms 150168 KB n = 16
40 Correct 126 ms 149624 KB n = 9
41 Correct 318 ms 150108 KB n = 16
42 Correct 318 ms 150112 KB n = 16
43 Correct 317 ms 150176 KB n = 16
44 Correct 122 ms 149624 KB n = 9
45 Correct 209 ms 149872 KB n = 15
46 Correct 313 ms 150008 KB n = 16
47 Correct 315 ms 150124 KB n = 16
48 Correct 316 ms 150008 KB n = 16
49 Incorrect 190 ms 152732 KB answer is not correct: -1 instead of 0
50 Halted 0 ms 0 KB -