제출 #744972

#제출 시각아이디문제언어결과실행 시간메모리
744972zeta7532수열 (APIO14_sequence)C++17
50 / 100
2088 ms48212 KiB
#include <bits/stdc++.h>
#pragma GCC target("avx2")
#pragma GCC optimize("O3")
#pragma GCC optimize("unroll-loops")
using namespace std;
using ll = long long;
const ll mod = 998244353;
#define fi first
#define se second
#define rep(i,n) for(ll i=0;i<n;i++)
#define all(x) x.begin(),x.end()
#define faster ios::sync_with_stdio(false);cin.tie(nullptr)
 
int main() {
    ll N,K;
    cin >> N >> K;
    K++;
    vector<ll> A(N);
    rep(i,N) cin >> A[i];
    vector<ll> sum(N+1);
    sum[0]=0;
    rep(i,N) sum[i+1]=sum[i]+A[i];
    vector<vector<ll>> dp(N+1,vector<ll>(K+1,0));
    ll ans[N+1][K+1][2];
    rep(i,N){
        rep(k,min(i+1,K)){
            dp[i+1][k+1]=-1;
            for(ll j=k;j<i+1;j++){
                ll x=dp[j][k]+(sum[i+1]-sum[j])*(sum[N]-sum[i+1]);
                if(dp[i+1][k+1]<x){
                    dp[i+1][k+1]=x;
                    ans[i+1][k+1][0]=j;
                    ans[i+1][k+1][1]=k;
                }
            }    
        }
    }
    cout << dp[N][K] << endl;
    ll y=N,z=K;
    vector<ll> ANS;
    while(1){
        ll ny=ans[y][z][0];
        ll nz=ans[y][z][1];
        y=ny;
        z=nz;
        if(y==0) break;
        ANS.push_back(y);
    }
    reverse(all(ANS));
    rep(i,ANS.size()) cout << ANS[i] << " ";
    cout << endl;
    return 0;
}

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

sequence.cpp: In function 'int main()':
sequence.cpp:10:30: warning: comparison of integer expressions of different signedness: 'll' {aka 'long long int'} and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   10 | #define rep(i,n) for(ll i=0;i<n;i++)
......
   50 |     rep(i,ANS.size()) cout << ANS[i] << " ";
      |         ~~~~~~~~~~~~          
sequence.cpp:50:5: note: in expansion of macro 'rep'
   50 |     rep(i,ANS.size()) cout << ANS[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...
#Verdict Execution timeMemoryGrader output
Fetching results...