Pagini recente » Cod sursa (job #1075984) | Cod sursa (job #2110694) | Cod sursa (job #772025) | Cod sursa (job #413521) | Cod sursa (job #664314)
Cod sursa(job #664314)
#include <fstream>
#include <cmath>
#include <vector>
#include <algorithm>
#define MAX 35000
using namespace std;
int n, t;
int solution[MAX];
int sume[MAX];
int day[MAX];
int negs;
void citire()
{
ifstream in("euro.in");
int x;
int s = 0;
in>>n>>t;
for(int i = 1; i < n; i++)
{
in>>x;
s += x;
if(s < 0)
{
sume[++negs] = s;
day[negs] = i;
s = 0;
}
}
in>>x;
s += x;
sume[++negs] = s;
day[negs] = n;
in.close();
}
void solve()
{
int actual = 0;
for(int i = 1; i <= negs; i++)
{
solution[i] = solution[i - 1] + sume[i] * day[i];
actual = sume[i];
for(int j = i - 1; j > 0; j--)
{
actual += sume[j];
solution[i] = max(solution[i], solution[j - 1] + actual * day[i]);
}
solution[i] -= t;
}
}
void afisare()
{
ofstream out("euro.out");
out<<solution[negs];
out.close();
}
int main()
{
citire();
solve();
afisare();
return 0;
}