Submission #936172

# Submission time Handle Problem Language Result Execution time Memory
936172 2024-03-01T10:00:12 Z shoryu386 The short shank; Redemption (BOI21_prison) C++17
15 / 100
2000 ms 251832 KB
#include <bits/stdc++.h>
using namespace std;
 
#define int long long
 
int n, d, t;
#define MAX 4007
 
int arr[MAX], dp[MAX][MAX];
 
int memo[MAX][MAX];
void costPrecomp(int l){;
	int ans = 0;
 
	if (arr[l] <= t) memo[l][l] = 1, ans = 1;
	else memo[l][l] = 0, ans = 0;
	
	int carry = arr[l] + 1;
	for (int x = l+1; x < n; x++){
		int val = min(arr[x], carry);
		if (val <= t) ans++;
		
		carry = min(carry, arr[x]);
		carry += 1;
		
		memo[l][x] = ans;
	}
}
 
inline int cost(int l, int r){ return memo[l][r];}
 
main(){
	cin >> n >> d >> t;
	for (int x = 0; x < n; x++) cin >> arr[x];
	for (int x = 0; x < n; x++) costPrecomp(x);
	
	memset(dp, 63, sizeof(dp));
	
	for (int x = 0; x < n; x++){
		dp[x][1] = min(dp[x][1], cost(0, x));
	}
	
	for (int z = 1; z <= n; z++){
		vector<int> test;
		for (int x = 0; x < n; x++){
			int bestLoc = -1;
			for (int y = 0; y < x; y++){
				if (dp[y][z-1] + cost(y+1, x) < dp[x][z]) dp[x][z] = dp[y][z-1] + cost(y+1, x), bestLoc = y;
			}
			
			if (bestLoc != -1) test.push_back(bestLoc);
			
		}
		
		//for (auto z : test) cout << z << ' ';
		//cout << '\n';
		
		vector<int> check = test; sort(check.begin(), check.end());
		assert(check == test);
	}
	
	cout << dp[n-1][d+1];
}

Compilation message

prison.cpp:32:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   32 | main(){
      | ^~~~
# Verdict Execution time Memory Grader output
1 Correct 28 ms 126288 KB Output is correct
2 Correct 81 ms 141116 KB Output is correct
3 Correct 79 ms 140884 KB Output is correct
4 Correct 127 ms 142904 KB Output is correct
5 Correct 125 ms 142932 KB Output is correct
6 Correct 121 ms 142928 KB Output is correct
7 Correct 116 ms 142900 KB Output is correct
8 Correct 127 ms 142932 KB Output is correct
9 Correct 123 ms 142904 KB Output is correct
10 Correct 132 ms 142904 KB Output is correct
11 Correct 136 ms 142932 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 16 ms 126296 KB Output is correct
2 Runtime error 7 ms 604 KB Execution killed with signal 11
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 28 ms 126288 KB Output is correct
2 Correct 81 ms 141116 KB Output is correct
3 Correct 79 ms 140884 KB Output is correct
4 Correct 127 ms 142904 KB Output is correct
5 Correct 125 ms 142932 KB Output is correct
6 Correct 121 ms 142928 KB Output is correct
7 Correct 116 ms 142900 KB Output is correct
8 Correct 127 ms 142932 KB Output is correct
9 Correct 123 ms 142904 KB Output is correct
10 Correct 132 ms 142904 KB Output is correct
11 Correct 136 ms 142932 KB Output is correct
12 Correct 17 ms 126300 KB Output is correct
13 Correct 74 ms 140844 KB Output is correct
14 Correct 81 ms 141116 KB Output is correct
15 Correct 126 ms 142932 KB Output is correct
16 Correct 124 ms 142908 KB Output is correct
17 Correct 140 ms 142928 KB Output is correct
18 Correct 117 ms 142916 KB Output is correct
19 Correct 127 ms 142904 KB Output is correct
20 Correct 139 ms 142900 KB Output is correct
21 Correct 124 ms 142928 KB Output is correct
22 Correct 126 ms 142932 KB Output is correct
23 Execution timed out 2016 ms 251832 KB Time limit exceeded
24 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 17 ms 126300 KB Output is correct
2 Runtime error 6 ms 536 KB Execution killed with signal 11
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 28 ms 126288 KB Output is correct
2 Correct 81 ms 141116 KB Output is correct
3 Correct 79 ms 140884 KB Output is correct
4 Correct 127 ms 142904 KB Output is correct
5 Correct 125 ms 142932 KB Output is correct
6 Correct 121 ms 142928 KB Output is correct
7 Correct 116 ms 142900 KB Output is correct
8 Correct 127 ms 142932 KB Output is correct
9 Correct 123 ms 142904 KB Output is correct
10 Correct 132 ms 142904 KB Output is correct
11 Correct 136 ms 142932 KB Output is correct
12 Correct 17 ms 126300 KB Output is correct
13 Correct 74 ms 140844 KB Output is correct
14 Correct 81 ms 141116 KB Output is correct
15 Correct 126 ms 142932 KB Output is correct
16 Correct 124 ms 142908 KB Output is correct
17 Correct 140 ms 142928 KB Output is correct
18 Correct 117 ms 142916 KB Output is correct
19 Correct 127 ms 142904 KB Output is correct
20 Correct 139 ms 142900 KB Output is correct
21 Correct 124 ms 142928 KB Output is correct
22 Correct 126 ms 142932 KB Output is correct
23 Execution timed out 2016 ms 251832 KB Time limit exceeded
24 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 28 ms 126288 KB Output is correct
2 Correct 81 ms 141116 KB Output is correct
3 Correct 79 ms 140884 KB Output is correct
4 Correct 127 ms 142904 KB Output is correct
5 Correct 125 ms 142932 KB Output is correct
6 Correct 121 ms 142928 KB Output is correct
7 Correct 116 ms 142900 KB Output is correct
8 Correct 127 ms 142932 KB Output is correct
9 Correct 123 ms 142904 KB Output is correct
10 Correct 132 ms 142904 KB Output is correct
11 Correct 136 ms 142932 KB Output is correct
12 Correct 16 ms 126296 KB Output is correct
13 Runtime error 7 ms 604 KB Execution killed with signal 11
14 Halted 0 ms 0 KB -