# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1265533 | herominhsteve | Kas (COCI17_kas) | C++20 | 140 ms | 2000 KiB |
#include <bits/stdc++.h>
#define el '\n'
#define FNAME "NAME"
#define allof(x) x.begin(),x.end()
#define allof1(x) x.begin()+1,x.end()
#define mset(x,n) memset(x,(n),sizeof(x))
const long long MOD = (long long) 1e9+7;
template<class X,class Y> bool minimize(X &a,Y b){ if (a>b) {a=b; return true;} return false;}
template<class X,class Y> bool maximize(X &a,Y b){ if (a<b) {a=b; return true;} return false;}
void setup(){
std::ios_base::sync_with_stdio(0);
std::cin.tie(0);std::cout.tie(0);
if (fopen(FNAME".inp","r")){
freopen(FNAME".inp","r",stdin);
freopen(FNAME".out","w",stdout);
}
}
const int INF = 1e9 + 15092007;
int n;
std::vector<int> a;
int total;
void init(){
std::cin>>n;
a.resize(n);
for (int i=0;i<n;i++){
std::cin>>a[i];
total+=a[i];
}
}
void sol(){
int sz = 2 * total + 1;
int OFFSET = total;
std::vector<int> dp(sz,-INF);
dp[OFFSET] = 0;
for (int i=0;i<n;i++){
std::vector<int> nxt(sz,-INF);
for (int delta=-total;delta<=total;delta++){
int cur = OFFSET + delta;
if (dp[cur]==-INF) continue;
// ! A takes
if (cur + a[i] <sz) maximize(nxt[cur + a[i]],dp[cur] + a[i]);
// ! B takes
if (cur - a[i] >=0) maximize(nxt[cur - a[i]],dp[cur]);
// ! No one takes
maximize(nxt[cur],dp[cur]);
}
dp.swap(nxt);
}
std::cout<< total - dp[OFFSET];
}
int main(){
setup();
init();
sol();
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |