公式
A - リンゴ拾い / Apple Picking 解説
by
A - リンゴ拾い / Apple Picking 解説
by
kyopro_friends
初心者の方へ
- AtCoder をはじめたばかりで何をしたらよいか分からない方は、まずは practice contest の問題A「Welcome to AtCoder」を解いてみてください。基本的な入出力の方法が載っています。
- また、プログラミングコンテストの問題に慣れていない方は、AtCoder Beginners Selection の問題をいくつか解いてみることをおすすめします。
- C++入門 AtCoder Programming Guide for beginners (APG4b) は、競技プログラミングのための C++ 入門用コンテンツです。
- Python入門 AtCoder Programming Guide for beginners (APG4bPython) は、競技プログラミングのための Python 入門用コンテンツです。
収穫しないのは木 \(K+1,2(K+1),3(K+1),\ldots\) です。よって、これらを飛ばしながら合計を求める、あるいは、全ての合計からこれらの合計を引く、などの方法で答えを求めることができます。
多くのプログラミング言語では、配列の添字は \(0\) から始まるため、インデックスがずれることに注意してください。
また、言語によってはオーバーフローに注意してください。
実装例 (C++)
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin >> n;
vector<int>d(n);
for(int i=0; i<n; i++) cin >> d[i];
long long ans = 0;
for(int i=0; i<n; i++){
if(i % (k + 1) != k){
ans += d[i];
}
}
cout << ans << endl;
}
python では A[s::k] という記法で、 [A[s], A[s+k], A[s+2*k], ...] というリストを作ることができるため、これを利用すると簡潔に実装できます。
実装例 (Python)
N, K = map(int, input().split())
D = list(map(int, input().split()))
print(sum(D) - sum(D[K::K+1]))
投稿日時:
最終更新:
