Pagini recente » Cod sursa (job #248881) | Cod sursa (job #138342) | Cod sursa (job #1428803) | Cod sursa (job #651332) | Cod sursa (job #1821155)
#include <cstdio>
#include <algorithm>
using namespace std;
FILE *f, *g;
int n, c;
int mx;
struct client
{
int t, c;
};
client v[2001];
void readFile()
{
f = fopen("carnati.in", "r");
fscanf(f, "%d%d", &n, &c);
int i;
for(i = 1; i <= n; i ++)
fscanf(f, "%d%d", &v[i].t, &v[i].c);
fclose(f);
}
bool cmp(client a, client b)
{
return (a.t < b.t ? true : false);
}
inline int mxa(int a, int b)
{
return (a > b ? a : b);
}
void solve()
{
sort(v + 1, v + n + 1, cmp);
int i, j;
int profit, profitVechi;
v[0].t = v[1].t - 1;
for(j = 1; j <= n; j ++)
{
profitVechi = 0;
for(i = 1; i <= n; i ++)
{
profit = 0;
if(v[j].c <= v[i].c)
profit = v[j].c;
profit = mxa(profit - c, profit + profitVechi - c * (v[i].t - v[i - 1].t));
mx = mxa(mx, profit);
profitVechi = profit;
}
}
}
void printFile()
{
g = fopen("carnati.out", "w");
fprintf(g, "%d\n", mx);
fclose(g);
}
int main()
{
readFile();
solve();
printFile();
return 0;
}