제출 #105815

#제출 시각아이디문제언어결과실행 시간메모리
105815KastandaBali Sculptures (APIO15_sculpture)C++11
37 / 100
4 ms512 KiB
#include<bits/stdc++.h> using namespace std; const int N = 2020, N2 = 109; int n, a, b, A[N], dp[N]; bitset < N2 > pd[N2]; inline bool Solve(int Mask, int tp) { if (!tp) { dp[0] = 0; for (int i = 1; i <= n; i++) { int sum = A[i]; dp[i] = n + 1; for (int j = i - 1; j >= 0; sum += A[j], j --) if ((Mask & sum) == sum) dp[i] = min(dp[i], dp[j] + 1); } return (dp[n] <= b); } pd[0][0] = 1; for (int i = 1; i <= n; i++) { int sum = A[i]; pd[i] = 0; for (int j = i - 1; j >= 0; sum += A[j], j --) if ((Mask & sum) == sum) pd[i] |= (pd[j] << 1); } for (int i = a; i <= b; i++) if (pd[n][i]) return 1; return 0; } int main() { scanf("%d%d%d", &n, &a, &b); for (int i = 1; i <= n; i++) scanf("%d", &A[i]); int Mn = 0; for (int i = 30; ~ i; i --) if (!Solve(Mn | ((1 << i) - 1), a > 1)) Mn |= 1 << i; return !printf("%d\n", Mn); }

컴파일 시 표준 에러 (stderr) 메시지

sculpture.cpp: In function 'int main()':
sculpture.cpp:35:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d%d%d", &n, &a, &b);
     ~~~~~^~~~~~~~~~~~~~~~~~~~~~
sculpture.cpp:37:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d", &A[i]);
         ~~~~~^~~~~~~~~~~~~
#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...