SDJZU 挂盐水

来源:互联网 发布:爆涨牛选股指标源码 编辑:程序博客网 时间:2024/04/27 21:47

题目描述

挂盐水的时候,如果滴起来有规律,先是滴一滴,停一下;然后滴二滴,停一下;再滴三滴,停一下...,现在有一个问题:这瓶盐水一共有VUL毫升,每一滴是D毫升,每一滴的速度是一秒(假设最后一滴不到D毫升,则花费的时间也算一秒),停一下的时间也是一秒这瓶水什么时候能挂完呢?

输入格式

输入数据包含多个测试实例,每个实例占一行,由VUL和D组成,其中 0<D<VUL<5000。

输出

对于每组测试数据,请输出挂完盐水需要的时间,每个实例的输出占一行。

样例输入

10 1

样例输出

13


#include <iostream>using namespace std;int main(){    int v,m;    while(cin>>v>>m)    {        int ans=0;        int flag,t=0;        for(int i=1; i<=v; i++)        {            ans+=i*m;//每次i从1~v的毫升数;            t+=i;//滴的时间;            if(ans>=v)            {                flag=i;//确定是第几次;                break;            }        }        if(ans==v)            cout<<t+flag-1<<endl;//最后一次去掉停的时间-1;        else        {            ans-=flag*m;//第i的前一次;            t-=flag;            int a=v-ans;            if(a%m==0)                t+=a/m;//正好m毫升;            else                t+=a/m+1;//不足m毫升,时间也算1s;            cout<<t+flag-1<<endl;//最后一次不算停的时间;        }    }    return 0;}