Codeforces и Polygon могут быть недоступны в период с 23 мая, 7:00 (МСК) по 23 мая, 11:00 (МСК) в связи с проведением технических работ. ×

Блог пользователя DaschaVojtovitsh123

Автор DaschaVojtovitsh123, история, 14 месяцев назад, По-русски

include <bits/stdc++.h>

using namespace std;

define endl'\n'

typedef long long ll; const ll INF=1000000000000000099; ll n,m,k,kl,o,op; set<pair<ll,ll>> s; pair<ll,ll> p[400009]; int main(){ cin>>n>>m>>k; for(int i=1;i<=n;i++) cin>>p[i].first>>p[i].second; sort(p+1,p+1+n); for(int i=1;i<=n;i++) {ll lk=0; if(s.size()>0) { for(auto x:s) {if(s.size()<=0) break; ll d1=x.first,d2=x.second;//if(d1>=p[i].first) break;s.erase(x); if(d1<1) {o-=d2;op++;s.erase(x);continue;} if(d1>=p[i].first) break; if(s.size()<=0) break;}}//cout<<"OP"<<op<<"OP"; if(p[i].second>o) { kl+=(p[i].second-o)/k;lk=(p[i].second-o)/k; if((p[i].second-o)%k!=0) {kl++;lk++;}o+=lk*k; s.insert({p[i].first+2*m,lk*k}); } }cout<<kl; return 0; }

Полный текст и комментарии »

  • Проголосовать: нравится
  • 0
  • Проголосовать: не нравится