제출 #477452

#제출 시각아이디문제언어결과실행 시간메모리
477452PiejanVDC수열 (APIO14_sequence)C++17
0 / 100
2095 ms8496 KiB
#include <bits/stdc++.h>
using namespace std;

int n,k;
int ans;
vector<int>pref(100005);
vector<int>v,ans_v;

void dfs(int i, int last_cut, int cnt, int curr) {
    if(cnt == k) {
        if(curr > ans)
            ans_v = v;
        ans=max(ans,curr);
        return;
    }
    if(i == n)
        return;
    dfs(i+1,last_cut,cnt,curr);
    if(i>0) {
        v.push_back(i);
        dfs(i+1,i,cnt+1,curr + (pref[n] - pref[i]) * (pref[i] - pref[last_cut]));
        v.pop_back();
    }
}

signed main() {
    cin>>n>>k;
    pref[0]=0;
    for(int i = 0 ; i < n ; i++) {
        int x; cin>>x;
        pref[i+1] = pref[i] + x;
    }
    dfs(0,0,0,0);
    cout << ans << "\n";
    for(int i = 0 ; i < (int)ans_v.size() ; i++) {
        cout << ans_v[i];
        if(i < ans_v.size()-1)
            cout << " ";
    }
}

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

sequence.cpp: In function 'int main()':
sequence.cpp:37:14: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   37 |         if(i < ans_v.size()-1)
      |            ~~^~~~~~~~~~~~~~~~
#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...