제출 #1187964

#제출 시각아이디문제언어결과실행 시간메모리
1187964versesrev수열 (APIO14_sequence)C++20
컴파일 에러
0 ms0 KiB
#include <iostream> #include <vector> #include <limits> #include <numeric> int main() { int n, k; std::cin >> n >> k; std::vector<int> xs(n); for (int& x : xs) std::cin >> x; std::vector<lonv long> sum(n); std::partial_sum(xs.begin(), xs.end(), sum.begin()); long long INF = std::numeric_limit<long long>::max(); std::vector<std::vector<long long>> dp(k+1, std::vector<long long>(n)); std::vector<std::vector<int>> back(k+1, std::vector<int>(n, -1)); //dp[0].assign(n, INF), dp[1].assign(n, INF); for (int i = 0; i < n; ++i) { dp[0][i] = sum[i] * sum[i]; back[0][i] = -1; } for (int ik = 1; ik <= k; ++ik) { for (int i = 0; i < n; ++i) { for (int j = ik; j <= i; ++j) { long long v = dp[ik-1][j-1] + (sum[i] - sum[j-1]) * (sum[i] - sum[j-1]) ); if (dp[ik][i] > v) { dp[ik][i] = v; back[ik][i] = j - 1; } } } } std::vector<int> ans; for (int p = n - 1, ik = k; ik; --ik) { p = back[ik][p]; ans.push_back(p + 1); } std::ranges::reverse(ans); for (int v : ans) std::cout << v << " "; std::cout << "\n"; }

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

sequence.cpp: In function 'int main()':
sequence.cpp:12:15: error: 'lonv' was not declared in this scope; did you mean 'long'?
   12 |   std::vector<lonv long> sum(n);
      |               ^~~~
      |               long
sequence.cpp:12:24: error: template argument 1 is invalid
   12 |   std::vector<lonv long> sum(n);
      |                        ^
sequence.cpp:12:24: error: template argument 2 is invalid
sequence.cpp:13:46: error: request for member 'begin' in 'sum', which is of non-class type 'int'
   13 |   std::partial_sum(xs.begin(), xs.end(), sum.begin());
      |                                              ^~~~~
sequence.cpp:15:24: error: 'numeric_limit' is not a member of 'std'; did you mean 'numeric_limits'?
   15 |   long long INF = std::numeric_limit<long long>::max();
      |                        ^~~~~~~~~~~~~
      |                        numeric_limits
sequence.cpp:15:38: error: expected primary-expression before 'long'
   15 |   long long INF = std::numeric_limit<long long>::max();
      |                                      ^~~~
sequence.cpp:20:19: error: invalid types 'int[int]' for array subscript
   20 |     dp[0][i] = sum[i] * sum[i];
      |                   ^
sequence.cpp:20:28: error: invalid types 'int[int]' for array subscript
   20 |     dp[0][i] = sum[i] * sum[i];
      |                            ^
sequence.cpp:27:15: error: invalid types 'int[int]' for array subscript
   27 |           (sum[i] - sum[j-1]) *
      |               ^
sequence.cpp:27:24: error: invalid types 'int[int]' for array subscript
   27 |           (sum[i] - sum[j-1]) *
      |                        ^
sequence.cpp:28:15: error: invalid types 'int[int]' for array subscript
   28 |           (sum[i] - sum[j-1])
      |               ^
sequence.cpp:28:24: error: invalid types 'int[int]' for array subscript
   28 |           (sum[i] - sum[j-1])
      |                        ^
sequence.cpp:42:16: error: 'reverse' is not a member of 'std::ranges'; did you mean 'std::reverse'?
   42 |   std::ranges::reverse(ans);
      |                ^~~~~~~
In file included from /usr/include/c++/11/string:52,
                 from /usr/include/c++/11/bits/locale_classes.h:40,
                 from /usr/include/c++/11/bits/ios_base.h:41,
                 from /usr/include/c++/11/ios:42,
                 from /usr/include/c++/11/ostream:38,
                 from /usr/include/c++/11/iostream:39,
                 from sequence.cpp:1:
/usr/include/c++/11/bits/stl_algo.h:1145:5: note: 'std::reverse' declared here
 1145 |     reverse(_BidirectionalIterator __first, _BidirectionalIterator __last)
      |     ^~~~~~~