Submission #546068

#TimeUsernameProblemLanguageResultExecution timeMemory
546068andrei_boaca수열 (APIO14_sequence)C++14
0 / 100
28 ms1844 KiB
#include <bits/stdc++.h>

using namespace std;
typedef long long ll;
ll n,k,v[100005],dp[100005][205],s[100005],ans=1e18,maxim;
vector<int> sol;
int main()
{
    cin>>n>>k;
    k++;
    for(int i=1;i<=n;i++)
    {
        cin>>v[i];
        s[i]=s[i-1]+v[i];
        maxim=max(maxim,v[i]);
    }
    ll avg=max(maxim,s[n]/k);
    ll steps=200;
    while(steps--)
    {
        vector<int> poz;
        ll last=0;
        ll rez=0;
        for(int i=1;i<=n;i++)
            if(i==n||(s[i]-s[last]>avg&&poz.size()<k))
            {
                ll val=s[i-(i<n)]-s[last];
                val*=val;
                rez+=val;
                poz.push_back(i-(i<n));
                last=i-(i<n);
            }
        if(poz.size()==k)
        {
            if(rez<ans)
            {
                ans=rez;
                sol=poz;
            }
        }
        avg++;
    }
    cout<<(s[n]*s[n]-ans)/2<<'\n';
    for(int i=0;i+1<sol.size();i++)
        cout<<sol[i]<<' ';
    return 0;
}

Compilation message (stderr)

sequence.cpp: In function 'int main()':
sequence.cpp:25:51: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'll' {aka 'long long int'} [-Wsign-compare]
   25 |             if(i==n||(s[i]-s[last]>avg&&poz.size()<k))
      |                                         ~~~~~~~~~~^~
sequence.cpp:33:22: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'll' {aka 'long long int'} [-Wsign-compare]
   33 |         if(poz.size()==k)
      |            ~~~~~~~~~~^~~
sequence.cpp:44:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   44 |     for(int i=0;i+1<sol.size();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...