Submission #857818

#TimeUsernameProblemLanguageResultExecution timeMemory
85781812345678Split the sequence (APIO14_sequence)C++17
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long const int kx=2e2+5, nx=1e5+5; ll n, k, qs[nx]; //ll dp[kx][nx]; int bk[kx][nx]; void solve(int l, int r, int optl, int optr, int layer) { if (l>r) return; int md=(l+r)/2; pair<ll, ll> p={LLONG_MAX, 0}; for (int i=optl; i<=min(optr, md-1); i++) if (dp[layer-1][i]!=LLONG_MAX) p=min(p, {dp[layer-1][i]+(qs[md]-qs[i])*(qs[md]-qs[i]), i}); dp[layer][md]=p.first; bk[layer][md]=p.second; solve(l, md-1, optl, p.second, layer); solve(md+1, r, p.second, optr, layer); } int main() { cin.tie(NULL)->sync_with_stdio(false); cin>>n>>k; for (int i=1; i<=n; i++) cin>>qs[i], qs[i]+=qs[i-1]; return 0; for (int i=0; i<kx; i++) for (int j=0; j<nx; j++) dp[i][j]=LLONG_MAX; dp[0][0]=0; for (int i=1; i<=k+1; i++) solve(1, n, 0, n, i); cout<<(qs[n]*qs[n]-dp[k+1][n])/2<<'\n'; ll l=n, ly=k+1; while (ly>1) { l=bk[ly][l]; ly--; cout<<l<<' '; } }

Compilation message (stderr)

sequence.cpp: In function 'void solve(int, int, int, int, int)':
sequence.cpp:18:51: error: 'dp' was not declared in this scope; did you mean 'p'?
   18 |     for (int i=optl; i<=min(optr, md-1); i++) if (dp[layer-1][i]!=LLONG_MAX) p=min(p, {dp[layer-1][i]+(qs[md]-qs[i])*(qs[md]-qs[i]), i});
      |                                                   ^~
      |                                                   p
sequence.cpp:18:136: error: no matching function for call to 'min(std::pair<long long int, long long int>&, <brace-enclosed initializer list>)'
   18 |     for (int i=optl; i<=min(optr, md-1); i++) if (dp[layer-1][i]!=LLONG_MAX) p=min(p, {dp[layer-1][i]+(qs[md]-qs[i])*(qs[md]-qs[i]), i});
      |                                                                                                                                        ^
In file included from /usr/include/c++/10/bits/specfun.h:45,
                 from /usr/include/c++/10/cmath:1927,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:41,
                 from sequence.cpp:1:
/usr/include/c++/10/bits/stl_algobase.h:230:5: note: candidate: 'constexpr const _Tp& std::min(const _Tp&, const _Tp&) [with _Tp = std::pair<long long int, long long int>]'
  230 |     min(const _Tp& __a, const _Tp& __b)
      |     ^~~
/usr/include/c++/10/bits/stl_algobase.h:230:36: note:   no known conversion for argument 2 from '<brace-enclosed initializer list>' to 'const std::pair<long long int, long long int>&'
  230 |     min(const _Tp& __a, const _Tp& __b)
      |                         ~~~~~~~~~~~^~~
/usr/include/c++/10/bits/stl_algobase.h:278:5: note: candidate: 'template<class _Tp, class _Compare> constexpr const _Tp& std::min(const _Tp&, const _Tp&, _Compare)'
  278 |     min(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
/usr/include/c++/10/bits/stl_algobase.h:278:5: note:   template argument deduction/substitution failed:
sequence.cpp:18:136: note:   candidate expects 3 arguments, 2 provided
   18 |     for (int i=optl; i<=min(optr, md-1); i++) if (dp[layer-1][i]!=LLONG_MAX) p=min(p, {dp[layer-1][i]+(qs[md]-qs[i])*(qs[md]-qs[i]), i});
      |                                                                                                                                        ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from sequence.cpp:1:
/usr/include/c++/10/bits/stl_algo.h:3468:5: note: candidate: 'template<class _Tp> constexpr _Tp std::min(std::initializer_list<_Tp>)'
 3468 |     min(initializer_list<_Tp> __l)
      |     ^~~
/usr/include/c++/10/bits/stl_algo.h:3468:5: note:   template argument deduction/substitution failed:
sequence.cpp:18:136: note:   'std::pair<long long int, long long int>' is not derived from 'std::initializer_list<_Tp>'
   18 |     for (int i=optl; i<=min(optr, md-1); i++) if (dp[layer-1][i]!=LLONG_MAX) p=min(p, {dp[layer-1][i]+(qs[md]-qs[i])*(qs[md]-qs[i]), i});
      |                                                                                                                                        ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from sequence.cpp:1:
/usr/include/c++/10/bits/stl_algo.h:3474:5: note: candidate: 'template<class _Tp, class _Compare> constexpr _Tp std::min(std::initializer_list<_Tp>, _Compare)'
 3474 |     min(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
/usr/include/c++/10/bits/stl_algo.h:3474:5: note:   template argument deduction/substitution failed:
sequence.cpp:18:136: note:   'std::pair<long long int, long long int>' is not derived from 'std::initializer_list<_Tp>'
   18 |     for (int i=optl; i<=min(optr, md-1); i++) if (dp[layer-1][i]!=LLONG_MAX) p=min(p, {dp[layer-1][i]+(qs[md]-qs[i])*(qs[md]-qs[i]), i});
      |                                                                                                                                        ^
sequence.cpp:19:5: error: 'dp' was not declared in this scope; did you mean 'p'?
   19 |     dp[layer][md]=p.first;
      |     ^~
      |     p
sequence.cpp: In function 'int main()':
sequence.cpp:31:55: error: 'dp' was not declared in this scope
   31 |     for (int i=0; i<kx; i++) for (int j=0; j<nx; j++) dp[i][j]=LLONG_MAX;
      |                                                       ^~
sequence.cpp:32:5: error: 'dp' was not declared in this scope
   32 |     dp[0][0]=0;
      |     ^~