Cod sursa(job #1773795)

Utilizator preda.andreiPreda Andrei preda.andrei Data 8 octombrie 2016 11:16:51
Problema Carnati Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <algorithm>
#include <fstream>
#include <vector>

using namespace std;

int main()
{
	ifstream fin("carnati.in");
	ofstream fout("carnati.out");

	int n, salariu;
	fin >> n >> salariu;

	vector<pair<int, int>> clienti(n + 1);
	for (int i = 1; i <= n; ++i)
		fin >> clienti[i].first >> clienti[i].second;
	sort(clienti.begin() + 1, clienti.end());
	clienti[0].first = -20;

	int raspuns = 0;
	for (int i = 1; i <= n; ++i) {
		int pret = clienti[i].second;
		int profit = 0;

		for (int j = 1; j <= n; ++j) {
			int vanzari = (clienti[j].second >= pret) ? pret : 0;
			int ore = clienti[j].first - clienti[j - 1].first;
			profit = max(profit + vanzari - salariu * ore, vanzari - salariu);
			raspuns = max(raspuns, profit);
		}
	}

	fout << raspuns << "\n";
	return 0;
}