BZOJ 4159 [Neerc2009]Business Center

思路

简单的模拟,答案就是\(min\{(\lfloor\frac{d\times n}{u+d}\rfloor+1)\times(u+d)-d\times n\}\)

代码

#include <cstdio>
#include <algorithm>
#include <cstring>
#define int long long
using namespace std;
int n,m,ans=0x3f3f3f3f3f3f3f3fLL;
signed main(){
    while(scanf("%lld %lld",&n,&m)==2){
        ans=0x3f3f3f3f3f3f3f3fLL;
        for(int i=1;i<=m;i++){
            int u,d;
            scanf("%lld %lld",&u,&d);
            int t=(d*n)/(u+d);
            t++;
            ans=min(ans,(u+d)*t-d*n);
        }
        printf("%lld\n",ans);
    }
    return 0;
}
posted @ 2019-02-28 18:58  dreagonm  阅读(146)  评论(0编辑  收藏  举报