Cod sursa(job #1216891)

Utilizator nimicLeoveanu Mihaita Alexandru nimic Data 6 august 2014 00:50:54
Problema Carnati Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include<fstream>
#include<algorithm>
using namespace std;
ifstream in("carnati.in");
ofstream out("carnati.out");

struct carnat{
	int t, p;
};

const int nmax = 2006;
carnat v[nmax];
int n, rasp, s, c, oldj;

int compar(carnat a, carnat b)
{
	return a.t<b.t;
}

int main(){
	int player_unu=0;

	v[0].t = -1;
	in>>n>>c;
	for(int i = 1; i<=n; i++)
		in>>v[i].t>>v[i].p;

	sort(v + 1, v + 1 + n, compar);

	for(int i = 1; i<=n; i++)
	{
		oldj = s = 0;

		for(int j = 1; j<=n; j++)
		{
			if(v[i].p<=v[j].p)
			{
				s -= c * (v[j].t - v[oldj].t - 1);

				if(s<0)
				{
					s = 0;
				}

				oldj = j;

				s += v[i].p - c;

				if(rasp<s)
					rasp = s;
			}
		}
	}

	out<<rasp<<'\n';
	return player_unu;
}