zoukankan      html  css  js  c++  java
  • xtu summer individual 6 B

    Number Busters

    Time Limit: 1000ms
    Memory Limit: 262144KB
    This problem will be judged on CodeForces. Original ID: 382B
    64-bit integer IO format: %I64d      Java class name: (Any)
     
    Arthur and Alexander are number busters. Today they've got a competition.

    Arthur took a group of four integers a, b, w, x (0 ≤ b < w, 0 < x < w) and Alexander took integer с. Arthur and Alexander use distinct approaches to number bustings. Alexander is just a regular guy. Each second, he subtracts one from his number. In other words, he performs the assignment: c = c - 1. Arthur is a sophisticated guy. Each second Arthur performs a complex operation, described as follows: if b ≥ x, perform the assignment b = b - x, if b < x, then perform two consecutive assignments a = a - 1; b = w - (x - b).

    You've got numbers a, b, w, x, c. Determine when Alexander gets ahead of Arthur if both guys start performing the operations at the same time. Assume that Alexander got ahead of Arthur if c ≤ a.

     

    Input

    The first line contains integers a, b, w, x, c (1 ≤ a ≤ 2·109, 1 ≤ w ≤ 1000, 0 ≤ b < w, 0 < x < w, 1 ≤ c ≤ 2·109).

     

    Output

    Print a single integer — the minimum time in seconds Alexander needs to get ahead of Arthur. You can prove that the described situation always occurs within the problem's limits.

     

    Sample Input

    Input
    4 2 3 1 6
    Output
    2
    Input
    4 2 3 1 7
    Output
    4
    Input
    1 2 3 2 6
    Output
    13
    Input
    1 1 2 1 1
    Output
    0

    Source

     
    解题:假设经过t次后
     
        c' = c - t;
        a' = a - n;
        b' = b-tx+nw;
        c' <= a'
     
    解出后有:(wc-wa-b+b')/(w-x) <= t
     
    由于t要取整,并且最小,故b'等于0时t有最小下界。。。。
     
     
     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstring>
     4 #include <cstdlib>
     5 #include <vector>
     6 #include <climits>
     7 #include <algorithm>
     8 #include <cmath>
     9 #define LL long long
    10 #define INF 0x3f3f3f
    11 using namespace std;
    12 double a,b,w,x,c;
    13 int main(){
    14     while(~scanf("%lf %lf %lf %lf %lf",&a,&b,&w,&x,&c)){
    15         double ans = ceil((w*c-w*a-b)/(w-x));
    16         printf("%.0f
    ",c<=a?0:ans);
    17     }
    18     return 0;
    19 }
    View Code
  • 相关阅读:
    Android应用开发1(应用程序框架)
    使用LogParser分析网站运行情况(比较简单)
    实现支持会话的WebClient
    放大招,解决前同事签出TFS文件的问题
    Python几行代码打印出网卡的Mac地址
    飞猪传书
    QQ斗地主记牌器(只支持角色版)
    咱也搞一个TransactionScope
    自定义WinForm 下ListBox的行高
    Linq To xml 查询时需要注意的一点。
  • 原文地址:https://www.cnblogs.com/crackpotisback/p/3900281.html
Copyright © 2011-2022 走看看