Cod sursa(job #1992340)

Utilizator patcasrarespatcas rares danut patcasrares Data 20 iunie 2017 11:17:07
Problema Lupul Urias si Rau Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.01 kb
#include<fstream>
#include<set>
#include<algorithm>
#include<vector>
#define a first
#define b second
using namespace std;
ifstream fin("lupu.in");
ofstream fout("lupu.out");
int n,x,l,in,b[100005],ma,j=1;
long long r;
pair<int,int >v[100005];
typedef pair<int,int >pii;
int cmp(pii A,pii B)
{
    if(A.a<B.a)
        return 1;
    return 0;
}
int nex(int g)
{
    if(g%l==0)
        return g;
    return g/l*l+l;
}
multiset<int,greater<int> >z;
int main()
{
    fin>>n>>x>>l;
    for(int i=1;i<=n;i++)
        fin>>v[i].a>>v[i].b;
    sort(v+1,v+n+1,cmp);
    if(l==0)
    {
        for(int i=1;i<=n;i++)
            if(v[j].a<=x)
                r+=v[j].b;
    }
    else
        for(int i=0;i<=x;i+=l)
        {
            for(;j<=n&&v[j].a<=i;j++)
                z.insert(v[j].b);
            r+=*z.begin();
            if(*z.begin()==0&&l!=0)
                i=nex(v[j].a)-l;
            z.erase(z.begin());
            if(j>n)
                break;

        }
    fout<<r;
}