Submission #20828

# Submission time Handle Problem Language Result Execution time Memory
20828 2017-02-23T14:40:15 Z jyjy1229 None (KOI16_resort) C++14
0 / 100
0 ms 1128 KB
#include <stdio.h>
int n, m, dp[102][35] = {0,}, check[102], a, cnt, k, p = 2e9;
int min3(int x, int y, int z){
	int q;
	q = x>y?y:x;
	return q>z?z:q;
}
int min2(int x, int y){
	return x>y?y:x;
}
int main(){
	scanf("%d %d", &n, &m);
	for(int i=0;i<m;i++){
		scanf("%d", &a);
		check[a] = 1;
	}
	for(int i=0;i<=n;i++){
		for(int j=0;j<=n/3;j++){
			dp[i][j] = 2e9;
		}
	}
	dp[0][0] = 0;
	dp[1][0] = 10000;
	for(int i=2;i<=n;i++){
		for(int j=0;j<=n/3;j++){
			if(check[i] == 0){
				if(i>=5 && j>=2){
					dp[i][j] = min3(dp[i-1][j] + 10000, dp[i-3][j-1] + 25000, dp[i-5][j-2] + 37000);
				}
				else if(i>=3 && j>=1){
					dp[i][j] = min2(dp[i-1][j] + 10000, dp[i-3][j-1] + 25000);
				}
				else{
					dp[i][j] = dp[i-1][j] + 10000;
				}
				if(j+3<=n/3){
					dp[i][j] = min2(dp[i][j], dp[i-1][j+3]);
				}
			}
			else{
				if(i>=5 && j>=2){
					dp[i][j] = min3(dp[i-1][j], dp[i-3][j-1] + 25000, dp[i-5][j-2] + 37000);
				}
				else if(i>=3 && j>=1){
					dp[i][j] = min2(dp[i-1][j], dp[i-3][j-1] + 25000);
				}
				else{
					dp[i][j] = dp[i-1][j];
				}
			}
		}
	}
	for(int j=0;j<=n/3;j++){
		if(p > dp[n][j])	p = dp[n][j];
	}
	printf("%d", p);
	return 0;
}

Compilation message

resort.cpp: In function 'int main()':
resort.cpp:12:24: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d %d", &n, &m);
                        ^
resort.cpp:14:18: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d", &a);
                  ^
# Verdict Execution time Memory Grader output
1 Correct 0 ms 1128 KB Output is correct
2 Correct 0 ms 1128 KB Output is correct
3 Correct 0 ms 1128 KB Output is correct
4 Correct 0 ms 1128 KB Output is correct
5 Correct 0 ms 1128 KB Output is correct
6 Incorrect 0 ms 1128 KB Output isn't correct
7 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 1128 KB Output is correct
2 Correct 0 ms 1128 KB Output is correct
3 Correct 0 ms 1128 KB Output is correct
4 Incorrect 0 ms 1128 KB Output isn't correct
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 1128 KB Output is correct
2 Correct 0 ms 1128 KB Output is correct
3 Correct 0 ms 1128 KB Output is correct
4 Correct 0 ms 1128 KB Output is correct
5 Correct 0 ms 1128 KB Output is correct
6 Incorrect 0 ms 1128 KB Output isn't correct
7 Halted 0 ms 0 KB -