1626C - Monsters And Spells - CodeForces Solution


binary search data structures dp greedy implementation math two pointers *1700

Please click on ads to support us..

C++ Code:

#include<bits/stdc++.h>
using namespace std;
const int N=110;
#define int long long
int t,n,k[N],h[N];

signed main(){
	cin>>t;
	while(t--){
		cin>>n;
		for(int i=1;i<=n;i++) cin>>k[i];
		for(int i=1;i<=n;i++) cin>>h[i];
		
		int ans=0,last=n;
		
		for(int i=n;i>=1;i--){
			if(k[i]-k[i-1]>=h[i]){
				int pos=k[i]-h[i];
				ans += (k[last]-pos+1)*(k[last]-pos)/2;
				last=i-1;
			}
			else{
				h[i-1]=max(h[i-1],h[i]-(k[i]-k[i-1]));
			}
		}
		cout<<ans<<endl;
	}
}


Comments

Submit
0 Comments
More Questions

1529B - Sifid and Strange Subsequences
1455C - Ping-pong
1644C - Increase Subarray Sums
1433A - Boring Apartments
1428B - Belted Rooms
519B - A and B and Compilation Errors
1152B - Neko Performs Cat Furrier Transform
1411A - In-game Chat
119A - Epic Game
703A - Mishka and Game
1504C - Balance the Bits
988A - Diverse Team
1312B - Bogosort
1616B - Mirror in the String
1660C - Get an Even String
489B - BerSU Ball
977C - Less or Equal
1505C - Fibonacci Words
1660A - Vasya and Coins
1660E - Matrix and Shifts
1293B - JOE is on TV
1584A - Mathematical Addition
1660B - Vlad and Candies
1472C - Long Jumps
1293D - Aroma's Search
918A - Eleven
1237A - Balanced Rating Changes
1616A - Integer Diversity
1627B - Not Sitting
1663C - Pōja Verdon