Submission #629271

# Submission time Handle Problem Language Result Execution time Memory
629271 2022-08-14T10:21:25 Z handlename Catfish Farm (IOI22_fish) C++17
35 / 100
1000 ms 119728 KB
#include <bits/stdc++.h>
//#include "fish.h"
using namespace std;
#define pb push_back
#define mp make_pair
long long dp[3005][3005][2]; //col,height,increasing/decreasing
long long pre[3005][3005];
long long max_weights(int n,int m,vector<int> x,vector<int> y,vector<int> w){
	for (int i=0;i<m;i++){
		x[i]++;
		y[i]++;
		pre[x[i]][y[i]]=w[i];
	}
	for (int i=1;i<=n;i++){
		for (int j=1;j<=n;j++){
			pre[i][j]+=pre[i][j-1];
		}
	}
	for (int i=1;i<=n;i++){ //col
		for (int j=0;j<=n;j++){ //col height
			dp[i][j][0]=-1e18;
			dp[i][j][1]=-1e18;
		}
		long long maxi=0;
		for (int j=0;j<=n;j++){
			maxi=max(maxi,dp[i-1][j][0]-pre[i][j]-pre[i-1][j]);
			if (i>=2){
				maxi=max(maxi,dp[i-2][j][1]-pre[i-1][j]);
			}
			dp[i][j][0]=maxi+pre[i-1][j]+pre[i+1][j];
		}
		maxi=0;
		if (i>=2){
			for (int j=n;j>=0;j--){
				maxi=max(maxi,dp[i-2][j][1]);
				dp[i][j][0]=max(dp[i][j][0],maxi+pre[i+1][j]);
			}
		}
		/*
		for (int j=0;j<=n;j++){
			if (i>=2){
				for (int k=j;k<=n;k++){ //i-2 col height
					dp[i][j][0]=max(dp[i][j][0],dp[i-2][k][1]+pre[i+1][j]);
				}
			}
		}
		* */
		for (int j=0;j<=n;j++){
			//calculate decreasing
			for (int k=j;k<=n;k++){ //prev col height
				dp[i][j][1]=max(dp[i][j][1],dp[i-1][k][1]);
			}
			dp[i][j][1]+=pre[i+1][j]-pre[i][j];
		}
		for (int j=0;j<=n;j++){
			dp[i][j][1]=max(dp[i][j][1],dp[i][j][0]);
		}
	}
	long long ans=0;
	for (int j=0;j<=n;j++){
		ans=max(ans,dp[n][j][1]);
	}
	return ans;
}
# Verdict Execution time Memory Grader output
1 Execution timed out 1091 ms 119728 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Execution timed out 1091 ms 115168 KB Time limit exceeded
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1064 ms 103804 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 340 KB Output is correct
2 Correct 0 ms 340 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 0 ms 212 KB Output is correct
7 Correct 1 ms 340 KB Output is correct
8 Correct 1 ms 212 KB Output is correct
9 Correct 4 ms 2004 KB Output is correct
10 Correct 17 ms 4828 KB Output is correct
11 Correct 3 ms 2004 KB Output is correct
12 Correct 19 ms 4948 KB Output is correct
13 Correct 1 ms 980 KB Output is correct
14 Correct 19 ms 4764 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 340 KB Output is correct
2 Correct 0 ms 340 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 0 ms 212 KB Output is correct
7 Correct 1 ms 340 KB Output is correct
8 Correct 1 ms 212 KB Output is correct
9 Correct 4 ms 2004 KB Output is correct
10 Correct 17 ms 4828 KB Output is correct
11 Correct 3 ms 2004 KB Output is correct
12 Correct 19 ms 4948 KB Output is correct
13 Correct 1 ms 980 KB Output is correct
14 Correct 19 ms 4764 KB Output is correct
15 Correct 17 ms 4820 KB Output is correct
16 Correct 1 ms 1108 KB Output is correct
17 Correct 29 ms 5812 KB Output is correct
18 Correct 29 ms 5844 KB Output is correct
19 Correct 28 ms 5836 KB Output is correct
20 Correct 29 ms 5900 KB Output is correct
21 Correct 31 ms 5844 KB Output is correct
22 Correct 42 ms 6876 KB Output is correct
23 Correct 20 ms 5028 KB Output is correct
24 Correct 29 ms 5460 KB Output is correct
25 Correct 19 ms 4820 KB Output is correct
26 Correct 21 ms 4948 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 340 KB Output is correct
2 Correct 0 ms 340 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 0 ms 212 KB Output is correct
7 Correct 1 ms 340 KB Output is correct
8 Correct 1 ms 212 KB Output is correct
9 Correct 4 ms 2004 KB Output is correct
10 Correct 17 ms 4828 KB Output is correct
11 Correct 3 ms 2004 KB Output is correct
12 Correct 19 ms 4948 KB Output is correct
13 Correct 1 ms 980 KB Output is correct
14 Correct 19 ms 4764 KB Output is correct
15 Correct 17 ms 4820 KB Output is correct
16 Correct 1 ms 1108 KB Output is correct
17 Correct 29 ms 5812 KB Output is correct
18 Correct 29 ms 5844 KB Output is correct
19 Correct 28 ms 5836 KB Output is correct
20 Correct 29 ms 5900 KB Output is correct
21 Correct 31 ms 5844 KB Output is correct
22 Correct 42 ms 6876 KB Output is correct
23 Correct 20 ms 5028 KB Output is correct
24 Correct 29 ms 5460 KB Output is correct
25 Correct 19 ms 4820 KB Output is correct
26 Correct 21 ms 4948 KB Output is correct
27 Execution timed out 1092 ms 81148 KB Time limit exceeded
28 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1064 ms 103804 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1091 ms 119728 KB Time limit exceeded
2 Halted 0 ms 0 KB -