SP7169 EGYPIZZA - Pizza

· · 题解

题目传送门

题目大意

有 n 个人,每个人要的 pizza 的量不同,最少要几个 pizza?

思路

我们可以将所有 pizza 都分成 4 块,这样每个人需要的就不再是分数,而是块数。

因此,我们就可以将不同的分数转换成块数,最后再 \div4 后向上取整,将 ans 再加上 1(因为他自己还要吃一个)。

代码

#include<bits/stdc++.h>
using namespace std;
int n;
double ans=1;//由于涉及除法和向上取整,因此ans要用浮点 
int main(){
    cin>>n;
    for (int i = 0; i <= n; i++){
        string pizza;
        cin >> pizza;
        if (pizza == "1/4"){
            ans+=1;
        }else if (pizza == "1/2"){
            ans+=2;
        }else if (pizza == "3/4"){
            ans+=3;
        }
    }ans=ceil(ans/4)+1;
    cout<<ans;
    return 0;
}