제출 #855320

#제출 시각아이디문제언어결과실행 시간메모리
855320vjudge1수열 (APIO14_sequence)C++17
50 / 100
2087 ms49600 KiB
#include <bits/stdc++.h> using namespace std; mt19937 rnd(chrono::steady_clock::now().time_since_epoch().count()); // #define int long long #pragma GCC optimize ("inline") #pragma GCC optimize ("Ofast") #pragma GCC optimize ("unroll-loops") #pragma GCC optimize ("03") #pragma GCC target ("sse,sse2,sse3,ssse3,sse4,popcnt,abm,avx2,mmx,fma,avx,tune=native") const int N = 1e5 + 7, mod = 1e9 + 7; int a[N]; long long dp[N][207], pref[N]; int pr[N][207]; void solve() { int n, K; cin>>n>>K; for(int i = 1; i <= n; i++) { cin>>a[i]; pref[i] = pref[i - 1] + a[i]; } long long maxx = 0; for(int i = 1; i <= n; i++) { for(int j = 1; j <= min(K, i); j++) { for(int k = 1; k < i; k++) { long long x = dp[k][j - 1] + (pref[i] - pref[k]) * 1ll * pref[k]; if(x >= dp[i][j]) { dp[i][j] = x; pr[i][j] = k; } } } } cout << dp[n][K] << '\n'; int j = pr[n][K]; int cnt = K; vector<int> ans; while(j > 0) { ans.push_back(j); j = pr[j][--cnt]; } reverse(ans.begin(), ans.end()); for(auto to : ans)cout << to << ' '; cout << '\n'; } signed main() { // freopen ("sequence.in", "r", stdin); // freopen ("sequence.out", "w", stdout); ios_base::sync_with_stdio(NULL); cin.tie(NULL); int t = 1; // cin>>t; // int cases = 0; while(t -- ) { // cases ++; // cout << "Case " << cases << ": "; solve(); } } /* */

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

sequence.cpp: In function 'void solve()':
sequence.cpp:21:15: warning: unused variable 'maxx' [-Wunused-variable]
   21 |     long long maxx = 0;
      |               ^~~~
#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...