제출 #74281

#제출 시각아이디문제언어결과실행 시간메모리
74281VardanyanBali Sculptures (APIO15_sculpture)C++14
46 / 100
1082 ms106672 KiB
//#pragma GCC optimize "-O3"
#include <bits/stdc++.h>
using namespace std;
const int N = 2005;
int A[N];
int K;
int n;
vector<long long> dp[N][N];
int main()
{
    int a,b;
    scanf("%d%d%d",&n,&a,&b);
    for(int i = 1;i<=n;i++) scanf("%d",&A[i]);
    long long c = 0;
    for(int i = 1;i<=n;i++){
        c+=A[i];
        dp[i][1].push_back(c);
    }
    long long ans = 10000000000000007;
    for(int k = 2;k<=b;k++){
        for(int i = 1;i<=n;i++){
            c = A[i];
            map<long long,int> mp;
            for(int j = i-1;j>=1;j--){
                for(int q = 0;q<dp[j][k-1].size();q++){
            if(!mp[dp[j][k-1][q]|c]){
                    dp[i][k].push_back(dp[j][k-1][q]|c);
               //     if(k>=a && i == n) ans = min(ans,dp[j][k-1][q]|c);
                    mp[dp[j][k-1][q]|c] = 1;
                }
            }
                c+=A[j];
            }
        }
    }
    for(int i = a;i<=b;i++){
        for(int j = 0;j<dp[n][i].size();j++){
            ans = min(ans,dp[n][i][j]);
        }
    }
    cout<<ans<<endl;
    return 0;
}

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

sculpture.cpp: In function 'int main()':
sculpture.cpp:25:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
                 for(int q = 0;q<dp[j][k-1].size();q++){
                               ~^~~~~~~~~~~~~~~~~~
sculpture.cpp:37:24: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for(int j = 0;j<dp[n][i].size();j++){
                       ~^~~~~~~~~~~~~~~~
sculpture.cpp:12: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:13:34: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     for(int i = 1;i<=n;i++) 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...