# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
21947 | 2017-04-27T18:44:35 Z | Hiasat | Bali Sculptures (APIO15_sculpture) | C++14 | 0 ms | 2080 KB |
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int, int> pii; typedef pair<ll, ll> pll; typedef pair<ll, int> plli; typedef pair<double, double> pdd; typedef pair<string, int> psi; const int MOD = 1e9 + 7; const int N = 100001; const ll oo = 1e15; typedef long long ll; const ll LOGN = 50; int dp[110][110]; int n,a,b; ll v[2010]; string ans = ""; bool check(ll num ){ for (int i = 0; i < ans.size(); ++i){ if((((1ll << (LOGN - i - 1))&num)>0) != (ans[i]-'0')){ return false; } } return ((num&(1ll << (LOGN - ans.size()-1))) == 0); } int can(int idx , int used){ if(used > b) return 0; if(idx == n){ return used >= a ? 1 : 0; } int &ret = dp[idx][used]; if(ret != -1) return ret; ret = 0; ll sum = 0; for (int i = idx ; i < n; ++i){ sum += v[i]; if(check(sum)){ ret = ret || can(i+1,used+1); } } return ret; } int main() { //freopen("input.txt","r",stdin); scanf("%d%d%d",&n,&a,&b); for (int i = 0; i < n; ++i){ scanf("%lld",&v[i]); } while(ans.size() < LOGN){ memset(dp,-1,sizeof dp); if(can(0,0)){ ans += '0'; }else{ ans += '1'; } } ll sum = 0; for (int i = 0; i < ans.size(); ++i){ sum += (1ll << (LOGN - i - 1)) * (ans[i]-'0'); } cout << sum << endl; return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 2080 KB | Output is correct |
2 | Incorrect | 0 ms | 2080 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 2080 KB | Output is correct |
2 | Incorrect | 0 ms | 2080 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 2080 KB | Output is correct |
2 | Incorrect | 0 ms | 2080 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 2080 KB | Output is correct |
2 | Incorrect | 0 ms | 2080 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 2080 KB | Output is correct |
2 | Incorrect | 0 ms | 2080 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |