Codeforces Round #252 (Div. 2) B. Valera and Fruits

时间:2023-03-09 19:17:38
Codeforces Round #252 (Div. 2) B. Valera and Fruits
#include <iostream>
#include <vector>
#include <algorithm>
#include <map> using namespace std; int main(){
int n,v;
cin >> n >>v;
map<int,int> fruit;
for(int i = ; i < n; ++ i ){
int a,b;
cin >>a >> b;
if(fruit.find(a)!=fruit.end()) fruit[a]+=b;
else fruit.insert(make_pair(a,b));
} int pre_a = , left_b = , collect_fruit = ;
for(map<int,int>::iterator iter = fruit.begin(); iter!=fruit.end(); ++ iter){
if(iter->first - pre_a > ){
collect_fruit += (left_b > v)? v : left_b;
left_b = ;
}
if(left_b >= v){
collect_fruit +=v;
left_b = iter->second;
}else{
collect_fruit +=left_b;
if(iter->second >= (v-left_b)){
collect_fruit +=v-left_b;
left_b = iter->second-v+left_b;
}else{
collect_fruit += iter->second;
left_b = ;
}
}
pre_a = iter->first;
}
collect_fruit+=(left_b > v) ? v : left_b;
cout<<collect_fruit<<endl;
}