Cod sursa(job #1787476)

Utilizator georgerapeanuRapeanu George georgerapeanu Data 24 octombrie 2016 18:49:55
Problema Lupul Urias si Rau Scor 16
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <cstdio>
#include <fstream>
#include <algorithm>
using namespace std;
FILE *f=fopen("lupu.in","r");
FILE *g=fopen("lupu.out","w");
pair <long long,long long> O[100005];
long long N,i,X,L,CN,maxim,rez;
bool cmp(pair<long long,long long> a,pair<long long,long long> b)
{
    if(a.first!=b.first)
        return a.first>b.first;
    return a.second>b.second;
}
int main()
{
    fscanf(f,"%lld%lld%lld",&N,&X,&L);
    for(i=1;i<=N;i++)
        fscanf(f,"%lld%lld",&O[i].first,&O[i].second);
    sort(O+1,O+1+N,cmp);
    i=1;
    while(O[i].first>X&&i<=N)
        i++;
    CN=N;
    while(i<=CN)
    {
        maxim=0;
        while(O[i].first>N-L&&i<=CN)
            {maxim=max(maxim,O[i].second);i++;}
        N-=L;
        rez+=maxim;
    }
    fprintf(g,"%lld",rez);
    fclose(f);
    fclose(g);
    return 0;
}