Little Elephant and Interval

来源:互联网 发布:医疗软件销售 编辑:程序博客网 时间:2024/04/28 15:19
Little Elephant and Interval
Time Limit:2000MS    Memory Limit:262144KB    64bit IO Format:%I64d & %I64u
SubmitStatusPracticeCodeForces 204A

Description

The Little Elephant very much loves sums on intervals.

This time he has a pair of integers l andr(l ≤ r). The Little Elephant has to find the number of such integersx(l ≤ x ≤ r), that the first digit of integerx equals the last one (in decimal notation). For example, such numbers as101, 477474 or 9 will be included in the answer and 47, 253 or 1020 will not.

Help him and count the number of described numbers x for a given pairl and r.

Input

The single line contains a pair of integers l andr(1 ≤ l ≤ r ≤ 1018) — the boundaries of the interval.

Please, do not use the %lld specifier to read or write 64-bit integers in С++. It is preferred to usecin, cout streams or the%I64d specifier.

Output

On a single line print a single integer — the answer to the problem.

Sample Input

Input
2 47
Output
12
Input
47 1024
Output
98

Hint

In the first sample the answer includes integers 2, 3, 4, 5, 6, 7, 8, 9, 11, 22, 33, 44.


意思就只求区间内M ~ N内的首尾和末位数字相同的个数

任然采用0~N区间的数字 减去 0~M 区间的数字个数

对于数字N ,如果小于10,然么直接返回。 要不然返回首尾的数字加上9.而且要注意当首尾大于末位的时候,需要减一

举个例子:46这个数。一共有1~9 加上11,22,33,44.这4个数一共13个数符合题目要求,正好是n / 10 + 9.

当数字为43时,首尾大于末位,44这样的数字就不符合要求了。所以当首尾大于末位时需要sum--;

/*********************************************** * Author: fisty * Created Time: 2015/2/8 20:47:21 * File Name   : 6_D.cpp *********************************************** */#include <iostream>#include <cstring>#include <deque>#include <cmath>#include <queue>#include <stack>#include <list>#include <map>#include <set>#include <string>#include <vector>#include <cstdio>#include <bitset>#include <algorithm>using namespace std;#define Debug(x) cout << #x << " " << x <<endl#define Memset(x, a) memset(x, a, sizeof(x))const int INF = 0x3f3f3f3f;typedef long long LL;typedef pair<int, int> P;#define FOR(i, a, b) for(int i = a;i < b; i++)LL solve(LL n){    LL sum = 0;    if(n < 10) return n;    else{        int r = n % 10;        sum = n / 10 + 9;        while(n >= 10) n /= 10;        //Debug(sum);        if(n > r) sum--;    }     //Debug(sum);    return sum;}int main(){    //freopen("in.cpp", "r", stdin);    cin.tie(0);    ios::sync_with_stdio(false);        LL l, r;    cin >> r >> l;        cout << solve(l) - solve(r-1) << endl;    return 0;}


0 0
原创粉丝点击