题解:P15040 [UOI 2022 II Stage] 竞赛

· · 题解

题面翻译

n 名学生在竞赛开始前 t 分钟到达。只允许学生每 w 分钟以 m 人为一组进入考场。

给定 n,m,w,t,你需要求出能及时参加竞赛的学生数量。

思路

直接用 while 循环枚举,每次进入的学生数为当前批次人数与剩余学生数的较小值。

Code

#include <bits/stdc++.h>
#define int long long
using namespace std;
int n, m, w, t, ans;
signed main(){
    cin >> n >> m >> w >> t;
    while(t >= 0 && ans < n){
        ans += min(m, n - ans);
        t -= w;
    }
    cout << ans;
    return 0;
}