欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

CF 135 DIV2 B Special Offer! Super Price 999 Bourles!

程序员文章站 2024-02-06 18:15:16
...

来源:http://codeforces.com/contest/219/problem/B 题意:就是一个物品有一个价,这个价可以最多降低d,求在所下降价不超过d的情况下,能够使价有最多的9且价最高.拿样例来说, 1029 102 原价为1029,最多可下降102元,在符合条件的范围内,能够取得最多的

来源:http://codeforces.com/contest/219/problem/B

题意:就是一个物品有一个价格,这个价格可以最多降低d,求在所下降价格不超过d的情况下,能够使价格有最多的9且价格最高.拿样例来说,

1029 102
原价为1029,最多可下降102元,在符合条件的范围内,能够取得最多的9且价格最高的是999.若没有 符合条件的情况,则输出原价。
思路:首先求出原价的位数,然后计算最多有多少个9,和原价比较以及判断是否符合条件。之后就是一个模拟的过程,一点一点加,直到找到符合条件的借。中间有一些细节需要注意,而且中间运算还有可能超过__int64,都需要处理一下。
代码:
#include 
#include 
#include 
using namespace std;

typedef unsigned __int64 LL;
int fun(LL x){
    int sum = 0;
    while(x){
      sum++;
      x /= 10;
    }
    return sum ;
}
LL cal(int x){
    LL sum = 0;
    for(int i = 1; i = value  && ans  p){
		   z = z - 9;
		   printf("%I64d\n",p);
		   continue;
		 }
         LL num = 0,xx = 0,yy = 0;
         LL cnt = 1;
         while(z