Submission #261923

#TimeUsernameProblemLanguageResultExecution timeMemory
261923patrikpavic2Cake 3 (JOI19_cake3)C++17
0 / 100
26 ms33152 KiB
#include <cstdio>
#include <cstring>
#include <vector>
#include <algorithm>

#define X first
#define Y second
#define PB push_back

using namespace std;

typedef pair < int, int > pii;
typedef long long ll;

const int N = 2e3 + 50;
const ll INF = 1e18;

ll dp[N][N];
int C[N], V[N], n, m;
vector < pii > v;

ll f(int i, int j){
	if(i == 0) return (j != 0) * (-INF);
	if(dp[i][j] != -1) return dp[i][j];
	if(!j)
		return dp[i][j] = max(f(i - 1, 0), 2LL * C[i] + V[i]);
	return dp[i][j] = max(f(i - 1, j), f(i - 1, j - 1) + V[i]);
}

int main(){
	memset(dp, -1, sizeof(dp));	
	scanf("%d%d", &n, &m);
	for(int i = 0;i < n;i++){
		int x, y; scanf("%d%d", &x, &y);
		v.PB({y, x});
	}
	sort(v.begin(), v.end());
	for(int i = 0;i < n;i++)
		C[i + 1] = v[i].X, V[i + 1] = v[i].Y;
	ll sol = -INF;
	for(int i = 1;i <= n;i++)
		sol = max(sol, f(i, m) - 2LL * C[i]);
	printf("%lld\n", sol);
}

Compilation message (stderr)

cake3.cpp: In function 'int main()':
cake3.cpp:32:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d%d", &n, &m);
  ~~~~~^~~~~~~~~~~~~~~~
cake3.cpp:34:18: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   int x, y; scanf("%d%d", &x, &y);
             ~~~~~^~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...