博客中的文章均爲meelo原創,請務必以連接形式註明本文地址html
CCF CSP 201703-1 分蛋糕
問題描述
小明今天生日,他有
n塊蛋糕要分給朋友們吃,這
n塊蛋糕(編號爲1到
n)的重量分別爲
a
1,
a
2, …,
an。小明想分給每一個朋友至少重量爲
k的蛋糕。小明的朋友們已經排好隊準備領蛋糕,對於每一個朋友,小明老是先將本身手中編號最小的蛋糕分給他,當這個朋友所分得蛋糕的重量不到
k時,再繼續將剩下的蛋糕中編號最小的給他,直到小明的蛋糕分完或者這個朋友分到的蛋糕的總重量大於等於
k。
請問當小明的蛋糕分完時,總共有多少個朋友分到了蛋糕。
輸入格式
輸入的第一行包含了兩個整數
n,
k,意義如上所述。
第二行包含
n個正整數,依次表示
a
1,
a
2, …,
an。
輸出格式
輸出一個整數,表示有多少個朋友分到了蛋糕。
樣例輸入
6 9
2 6 5 6 3 5
樣例輸出
3
樣例說明
第一個朋友分到了前3塊蛋糕,第二個朋友分到了第四、5塊蛋糕,第三個朋友分到了最後一塊蛋糕。
評測用例規模與約定
對於全部評測用例,1 ≤
n ≤ 1000,1 ≤
k ≤ 10000,1 ≤
ai ≤ 1000。
解析
題目很簡單,可是要看清楚題意。
特別要注意,最後一我的可能沒有分到K的重量,可是也算分到了蛋糕。
代碼
C++
#include <cstdio>
int main() {
int N, K;
scanf("%d%d", &N, &K);
int cnt = 0;
int weight, total = 0;
for(int n=0; n<N; n++) {
scanf("%d", &weight);
total += weight;
if(total >= K) {
cnt++;
total = 0;
}
}
if(total > 0) cnt++;
printf("%d\n", cnt);
}