[백준 / BOJ] C++ 27496

제27496호: 발머의 정점 이론

문제

https://www.acmicpc.net/problem/27496

제27496호: 발머의 정점 이론

각 시점의 혈중 알코올 농도는 {0.045, 0.089, 0.133, 0.131, 0.127}입니다.

따라서 지금부터 2시간, 이후 3시간 총 2시간 동안 혈중알코올농도를 유지할 수 있습니다.

www.acmicpc.net

설명

대회 중에는 누적합으로 풀고 나서 빼야 할 배열의 크기를 제한하기 어려웠다.

그래서 더할 때 더한 값을 배열에 저장하고 시간이 지속시간보다 커지면 다시 빼서 범위를 만족하는지 확인했다.

암호

#include <bits/stdc++.h>
using namespace std;

int main() {
  ios::sync_with_stdio(false);
  cin.tie(NULL);
  int N, L, ans = 0;
  long long sum = 0;
  cin >> N >> L;
  vector<int> v(N, 0);
  for (int i = 0; i < N; i++) {
    cin >> v(i);
    sum += v(i);
    if (i >= L) {
      sum -= v(i - L);
    }
    if (sum >= 129 && sum <= 138)
      ans++;
  }
  cout << ans << '\n';
  return 0;
}