`
20386053
  • 浏览: 461544 次
文章分类
社区版块
存档分类
最新评论

CodeForces 373 B. Making Sequences is Fun

 
阅读更多


B. Making Sequences is Fun
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output

We'll defineS(n)for positive integernas follows: the number of then's digits in the decimal base. For example,S(893) = 3,S(114514) = 6.

You want to make a consecutive integer sequence starting from numberm(m, m + 1, ...). But you need to payS(nkto add the numbernto the sequence.

You can spend a cost up tow, and you want to make the sequence as long as possible. Write a program that tells sequence's maximum length.

Input

The first line contains three integersw(1 ≤ w ≤ 1016),m(1 ≤ m ≤ 1016),k(1 ≤ k ≤ 109).

Please, do not write the%lldspecifier to read or write 64-bit integers in C++. It is preferred to use thecin,coutstreams or the%I64dspecifier.

Output

The first line should contain a single integer — the answer to the problem.

Sample test(s)
input
9 1 1
output
9
input
77 7 7
output
7
input
114 5 14
output
6
input
1 1 2
output
0

#include <iostream>
#include <cstring>
#include <cstdio>

using namespace std;

typedef unsigned long long int LL;

LL sates[25]={0,10,90,900,9000,90000,900000,9000000,90000000,900000000,9000000000,
90000000000,900000000000,9000000000000,90000000000000,900000000000000,9000000000000000,
90000000000000000,900000000000000000,9000000000000000000};
LL w,m,k;

int getlen(LL x)
{
    int cnt=0;
    while(x) cnt++,x/=10;
    return cnt;
}

LL E(int x)
{
    LL e=1;
    while(x) e*=10,x--;
    return e;
}

int main()
{
    cin>>w>>m>>k;
    int len=getlen(m),pos=len;
    if(w<k*len) {puts("0");return 0;}
    LL res=E(len)-m;
    if(w>res*k*len)
    {
        w-=res*k*pos;
        LL W=w;
        while(W>0)
        {
            w=W;
            pos++;
            if(W>k*pos*sates[pos]) W-=k*pos*sates[pos];
            else break;
        }
    }
    res=w;
    LL low=E(pos-1),mid;
    if(pos==len) low=m;
    mid=low+res/(k*pos)-1;
    cout<<mid-m+1<<endl;
    return 0;
}



分享到:
评论

相关推荐

    zhidd#ZXBlog#Codeforces - 1107B. Digital root & 1107C. Brutality

    Codeforces - 1107B. Digital root & 1107C. Brutality(规律 & 贪心)Codeforces - 1107B.

    Codeforces round 678 D2_Codeforces_源码.zip

    Codeforces 是一个知名的在线编程竞赛平台,吸引了众多程序员参与,以提升编程技能和解决算法问题的能力。"Codeforces round 678 D2" 指的是一场特定的编程比赛,其中"D2"可能代表该轮比赛的难度级别或类别,可能是...

    codeforces算法竞赛.zip

    1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,...

    (源码)基于Python的Codeforces题目集锦.zip

    # 基于Python的Codeforces题目集锦 ## 项目简介 本项目是一个基于Python的Codeforces题目集锦,旨在通过Python脚本来解决Codeforces平台上的各种算法和数据结构问题。项目包含了多个Python脚本,每个脚本对应一个...

    Codeforces 988 D. Points and Powers of Two(数学+结论)

    《Codeforces 988 D. Points and Powers of Two》是一道融合了数学与算法的编程竞赛题目。问题的核心在于找到一个数组中的子序列,使得其中任意两个元素之间的差值都是2的幂次。目标是找到这样的子序列,其长度尽...

    CodeForces-Div.2A

    Watermelon: http://codeforces.com/problemset/problem/4/A 2- 71A. Way Too Long Words: http://codeforces.com/problemset/problem/71/A 3- 118A. String Task: ...

    Educational Codeforces Round 157D. XOR Construction

    Educational Codeforces Round 157D. XOR Construction

    Codeforces 1324 F. Maximum White Subtree (树形dp) /详解

    F. Maximum White Subtree time limit per test2 seconds memory limit per test... A tree is a connected undirected graph with n−1 edges. Each vertex v of this tree has a color assigned to it (av=1 if the

    codeforces.dev:codeforces.dev

    codeforces.dev codeforces.dev 这是应用程序的项目模板。 它位于 。 要使用基于此模板创建一个新项目: npx degit sveltejs/template svelte-app cd svelte-app 请注意,您将需要安装 开始吧 安装依赖项... ...

    Codeforces 626 D. Jerry’s Protest(概率DP)

    codeforces每日一练。 题意: 有n张卡片,卡片上的数字就是分数,比如说甲乙两人抽卡,三局两胜,一局得分高的胜,求在甲赢了两局的情况下乙赢了第三局且总分比甲高的概率。 思路: 数据1e3,很明显的On^2算法,所以...

    Codeforces比赛用模板.zip

    Codeforces是一个知名的在线编程竞赛平台,它吸引了众多程序员参与,以提升编程技能和解决实际问题的能力。"Codeforces比赛用模板.zip"是一个压缩包,包含了参赛者在Codeforces平台上进行比赛时可能会用到的源码模板...

    Codeforces 1083 A. The Fair Nut and the Best Path(树形DP)

    codeforces每日一练。 题意: 给一棵树,每个点有一个点权,每条边有一个边权,求一条链使得点权和-边权和最大。 思路: 由于我没看清楚题意,以为是求联通子图的点权和-边权和最大,用link-cut-tree写换根,wa10了两...

    Codeforces 1305 D. Kuroni and the Celebration (交互题)

    题意: 给出 nnn 个点,n−1n-1n−1 条边,最多询问 n2\frac{n}{2}2n​ 次,每次询问 u,vu,vu,v,会给出 uvuvuv的最近公共祖先,求树的根。 ...操作就是一个删除叶子节点的过程。 AC代码: const int N = 1010;...

    Codeforces 1333C. Eugene and an array(思维) /详解

    Codeforces Round #632 (Div. 2) C. Eugene and an array 题意: 求出一个数列中子区间满足 此区间的任意子区间之和 不为0的区间个数。 思路: 考虑用dp[x]dp[x]dp[x]记录前缀和为xxx的区间右端点。 那么这道题其实...

    Codeforces 1333 F. Kate and imperfection

    题意: 在集合 S=1,2,⋯,nS={1,2,⋯,n}S=1,2,⋯,n 中,对于每个正整数 kkk ,找出一个大小为 kkk 的子集,使得该子集中两两间最大公因数的最大值最小,求这个最小值。 我们考虑如何构造两两间最大公因数的最大值最小...

    Codeforces 721 C. Journey(拓扑排序+DP)

    codeforces每日一练。 题意: 给定n个点,m条有向边,以及k时间。求不超过k时间1-n最多能经过多少个点。 思路: 数据&lt;=5000,说明是个暴力dp。 那么可以用dp[i][j]维护从1到i点经过了j个点,然后初始化为inf,再设...

    Codeforces 1312 E. Array Shrinking (区间dp)

    E. Array Shrinking time limit per test2 seconds memory limit per test256 megabytes inputstandard input ...Choose a pair of two neighboring equal elements ai=ai+1 (if there is at least o

    CodeForces1230 F. Konrad and Company Evaluation (复杂度分析)

    如果a嘲讽b,b嘲讽c,那么(a,b,c)是一个三元组 问每次操作之后一共有多少对三元组 数据范围:n,m&lt;=1e5,q&lt;=1e5 三元组图例(未修改工资时): 图中三元组一共4组: 4-&gt;3-&gt;1 4-&gt;3-&gt;2 4-&gt;2-&gt;1 3-&gt;2-&gt;1 解法...

    简单个人聊天室

    【简单个人聊天室】是一个基于ASP.NET技术构建的在线交流平台,主要面向个人用户,提供了一个简易而实用的沟通环境。在这个项目中,我们将探讨ASP.NET的核心特性、Web应用程序的基本结构以及如何实现基本的实时聊天...

    Codeforces 1325 D. Ehab the Xorcist (思维/构造) /详解

    D. Ehab the Xorcist ...Given 2 integers u and v, find the shortest array such that bitwise-xor of its elements is u, and the sum of its elements is v. Input The only line contains 2 integers u and v

Global site tag (gtag.js) - Google Analytics