Pagini recente » Cod sursa (job #2468449) | Cod sursa (job #945120) | Cod sursa (job #2942630) | Istoria paginii runda/lot4 | Cod sursa (job #1389467)
/// Round 1A 2013 - Problem B - Codejam
#include <bits/stdc++.h>
#define inf (1<<30)+100
#define pb push_back
#define mp make_pair
using namespace std;
ifstream f("input.in");
ofstream g("output.out");
int e,r,n;
vector<int> act;
int maxim;
void read() {
f>>e>>r>>n;
act.resize(0);
act.pb(0);
for (int i=1;i<=n;i++) {
int x; f>>x;
act.pb(x);
}
}
void goDP(int index, int energ, int sum) {
if (index == n+1) {
maxim = max(sum, maxim);
return;
}
for (int i=1;i<=energ;i++)
goDP(index+1, min(energ-i+r, e), sum + act[index]*i);
}
void solve() {
maxim = -inf;
goDP(0,e,0);
g<<maxim;
}
int main() {
int t; f>>t;
int cs = 1;
while (t--) {
g<<"Case #"<<cs++<<": ";
read();
solve();
g<<'\n';
}
f.close(); g.close();
return 0;
}