公式

A - プレゼント配り / Distributing Presents 解説 by kyopro_friends


現在持っているプレゼントの個数を管理しながら、N人の訪問をシミュレーションすれば良いです。

\(M\) 個のプレゼントを持っている状態から \(F\) 回つまづいたあとに持っているプレゼントの個数は \(\max(0, M-F)\) になります。

実装例 (C++)

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

int main(){
  int n;
  cin >> n;
  int crr = n;
  int ans = 0;

  for(int i=0; i<n; i++){
    int f;
    cin >> f;
    crr = max(0, crr - f);
    if(crr > 0){
      ans++;
      crr--;
    }
  }

  cout << ans << endl;
}

実装例 (Python)

N = int(input())
crr = N
ans = 0

for _ in range(N):
  F = int(input())
  crr = max(0, crr - F)
  if crr > 0:
    ans += 1
    crr -= 1

print(ans)

投稿日時:
最終更新: