EOJ2690. Soda Surpler

单点时限: 2.0 sec

内存限制: 256 MB

Tim is an absolutely obsessive soda drinker,he simply cannot get enough. Most annoyingly

though, he almost never has any money, so his only obvious legal way to obtain more soda is to take the money he gets when he recycles empty soda bottles to buy new ones. In addition to the empty bottles resulting from his own consumption he sometimes find empty bottles in the street. One day he was extra thirsty, so he actually drank sodas until he couldn’t aford a new one.


Three non-negative integers e,f,c, where e<1000 equals the number of empty soda

bottles in Tim’s possession at the start of the day, f<1000 the number of empty soda

bottles found during the day, and 1<c<2000 the number of empty bottles required to

buy a new soda.


How many sodas did Tim drink on his extra thirsty day?



9 0 3
5 5 2



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

int consume(int drank, int bottleshaving, int expense){
    // change before drink.
    while(bottleshaving >= expense)
        drank += bottleshaving / expense;
        bottleshaving = bottleshaving % expense + bottleshaving / expense;
    return drank;

int main() {
    int e,f,c;
    cin >> e >> f >> c;
    int having = e+f;
    int drank=0;
    int ret = consume(drank , having , c);
    cout << ret << endl;
    return 0;

ps:关于EOJ的样例输出:虽然题目样例给出的是【input2条-output2条】,实际上经过测试,只需要完成诸如让【9 0 3】一条输入进去,得到【4】的输出,并且保证其他测试用例的正确即可。