Mai intai trebuie sa te autentifici.
Cod sursa(job #1821155)
| Utilizator | Data | 2 decembrie 2016 18:51:07 | |
|---|---|---|---|
| Problema | Carnati | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 1.21 kb |
#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;
}
