Cod sursa(job #635200)

Utilizator vlad.doruIon Vlad-Doru vlad.doru Data 18 noiembrie 2011 19:15:20
Problema Gutui Scor 10
Compilator cpp Status done
Runda teme_upb Marime 0.67 kb
#include <fstream>
#include <algorithm>

using namespace std;

ifstream in("gutui.in");
ofstream out("gutui.out");

const int N=100001;

struct gutuie{
	int h,g;
}v[N];

int n,height,u,offset,rez,maxg;

bool comp(gutuie a,gutuie b){
	if(a.h>b.h)
		return true;
	return false;
}

int main(){
	int i;
	in>>n>>height>>u;
	for(i=1;i<=n;++i){
		in>>v[i].h>>v[i].g;
	}
	offset=u;
	sort(v+1,v+n+1,comp);
	i=1;
	while(i<=n){
		if(v[i].h+offset<=height){
			rez+=v[i].g;
			i++;
			maxg=0;
		}
		else{
			maxg=0;
			while(v[i].h+offset>height && v[i].g>maxg){
				maxg=v[i].g;
				i++;
			}
			rez+=maxg;
			offset+=u;
		}
	}
	out<<rez;
	return 0;
}