제출 #989339

#제출 시각아이디문제언어결과실행 시간메모리
989339vjudge1Split the sequence (APIO14_sequence)C++17
0 / 100
2040 ms1884 KiB
#include <bits/stdc++.h> #define ll long long #define ld long double #define namein "inp.inp" #define nameout "out.out" #define pll pair<ll, ll> #define pii pair<int, int> #define pb push_back #define vl vector<ll> #define vvl vector<vector<ll>> #define vi vector<int> #define vvi vector<vector<int>> #define vpll vector<pll> #define vpii vector<pii> #define fr(i, j, n) for (ll i = j; i <= n; i++) using namespace std; const ll mod = 1e9 + 7; const ll inf = LLONG_MAX; const ll maxn = 1e5 + 5; void opt(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); } void file(){ if (fopen(namein, "r")){ freopen(namein, "r", stdin); freopen(nameout, "w", stdout); } } ll n, k; ll a[maxn]; ll p[maxn]; ll mcost = 0; vector<vector<ll>> g(1); void bt(ll j, vector<ll> sv){ if (j == k && sv.back() != n){ sv.push_back(n); bt(j + 1, sv); } else if (j == k + 1){ ll sum[k + 1]; ll psum[k + 1]; fill_n(psum, j + 1, 0); for (ll i = 1; i < sv.size(); i++){ //sv[i - 1] + 1 -> sv[i] sum[i] = p[sv[i]] - p[sv[i - 1]]; psum[i] = psum[i - 1] + sum[i]; } ll cost = 0; for (ll i = 1; i <= k; i++){ cost += sum[i]*(psum[k] - psum[i]); } if (mcost < cost){ mcost = cost; g[0] = sv; } } else { for (ll i = sv.back() + 1; i <= n; i++){ sv.push_back(i); bt(j + 1, sv); sv.pop_back(); } } } void ans(){ cin >> n >> k; for (ll i = 1; i <= n; i++){ cin >> a[i]; p[i] = p[i - 1] + a[i]; } bt(1, {0}); cout << mcost << "\n"; for (ll i = 1; i < g[0].size(); i++){ cout << g[0][i] << " "; } } int main(){ opt(); file(); ans(); }

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

sequence.cpp: In function 'void bt(long long int, std::vector<long long int>)':
sequence.cpp:49:20: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   49 |   for (ll i = 1; i < sv.size(); i++){
      |                  ~~^~~~~~~~~~~
sequence.cpp: In function 'void ans()':
sequence.cpp:80:19: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   80 |  for (ll i = 1; i < g[0].size(); i++){
      |                 ~~^~~~~~~~~~~~~
sequence.cpp: In function 'void file()':
sequence.cpp:29:10: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   29 |   freopen(namein, "r", stdin);
      |   ~~~~~~~^~~~~~~~~~~~~~~~~~~~
sequence.cpp:30:10: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   30 |   freopen(nameout, "w", stdout);
      |   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
#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...