제출 #723793

#제출 시각아이디문제언어결과실행 시간메모리
723793rshohruhHacker (BOI15_hac)C++14
40 / 100
90 ms2456 KiB
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
const int inf = 1e9;
int main() {
  cin.tie(nullptr)->sync_with_stdio(false);
  #ifdef __local__
  freopen("input.txt", "r", stdin);
  freopen("output.txt", "w", stdout);
  #endif
  int n;
  cin >> n;
  vector<int> lis(n);
  for (int i = 0; i < n; i++)
    cin >> lis[i];

  vector<int> sussies(n, inf);
  int k = (n + 1) / 2;
  lis.insert(lis.end(), lis.begin(), lis.end());

  vector<long long> sm(lis.size()+1);
  for(int i = 1; i <= lis.size(); ++i) sm[i] = sm[i-1] + lis[i-1];
  if(n > 5000){
    cout << sm[k];
    exit(0);
  }
  for (int i = 0; i < n; i++) {
    int cur = sm[i+k] - sm[i];
    // for (int j = 0; j < k; j++) 
    //     cur += lis[i+j];

    for (int j = 0; j < k; j++)
      sussies[(i+j)%n] = min(cur, sussies[(i+j)%n]);
  }

  cout << *max_element(sussies.begin(), sussies.end());
  return 0;
}

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

hac.cpp: In function 'int main()':
hac.cpp:23:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   23 |   for(int i = 1; i <= lis.size(); ++i) sm[i] = sm[i-1] + lis[i-1];
      |                  ~~^~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...