제출 #1307517

#제출 시각아이디문제언어결과실행 시간메모리
1307517Zone_zoneeKas (COCI17_kas)C++20
100 / 100
113 ms2008 KiB
#include <bits/stdc++.h> using namespace std; const int N = 5e5+10, M = 1e5+10; int dp[2][2*M], a[N]; int main(){ ios_base::sync_with_stdio(false); cin.tie(nullptr); int n; cin >> n; int sum = 0; for(int i = 1; i <= n; ++i) cin >> a[i], sum += a[i]; memset(dp, 0xff, sizeof dp); dp[0][sum] = 0; for(int i = 0; i < n; ++i){ int cur = i&1, nxt = cur^1; for(int j = 0; j <= 2*sum; ++j){ if(dp[cur][j] == -1) continue; if(j+a[i+1] <= 2*sum+1) dp[nxt][j+a[i+1]] = max(dp[nxt][j+a[i+1]], dp[cur][j]+a[i+1]); if(j >= a[i+1]) dp[nxt][j-a[i+1]] = max(dp[nxt][j-a[i+1]], dp[cur][j]); dp[nxt][j] = max(dp[nxt][j], dp[cur][j]); } } cout << sum - dp[n&1][sum] << '\n'; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...