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
  • 相关阅读:
    ArcGIS Server 10.1 错误 service failed to start,
    ArcGIS AddIN开发异常之--“ValidateAddInXMLTask”任务意外失败
    关于程序批量处理人工做的数据。。。。
    ArcEngine创建要素类_线类型
    ArcEngine创建要素类01
    ArcEngine创建要素集
    其他人博客地址
    ArcEngine创建要素类_面类型
    ArcEngine判断要素集是否存在
    Arcengine 判断Dataset是否存在
  • 原文地址:https://www.cnblogs.com/crackpotisback/p/3900281.html
Copyright © 2011-2022 走看看