Submission #1161889

#TimeUsernameProblemLanguageResultExecution timeMemory
1161889alexander707070Potatoes and fertilizers (LMIO19_bulves)C++20
0 / 100
952 ms327680 KiB
#include<bits/stdc++.h>
#define MAXN 500007
using namespace std;

const long long inf=1e16;

int n,a[MAXN],b[MAXN];
int pos[MAXN],m,sum,suma;

long long dp[3007][30007];

int main(){

	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i]>>b[i];

		for(int f=1;f<=b[i];f++){
			m++; pos[m]=i;
		}

		suma+=a[i];
	}

	dp[0][0]=0;
	for(int i=1;i<=suma;i++)dp[0][i]=inf;

	for(int i=1;i<=n;i++){
		sum+=a[i];

		for(int f=0;f<=suma;f++){

			long long curr=0;
			dp[i][f]=dp[i-1][f];

			for(int k=1;k<=min(a[i],f);k++){
				curr+=abs(i-pos[f-k+1]);

				dp[i][f]=min(dp[i][f],curr+dp[i-1][f-k]);
			}
		}
	}

	cout<<dp[n][m]<<"\n";

	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...