赞
踩
小Y最近发现街上的汽车越来越多了.作为汽车的重要标志一汽车牌照也是越来越不够用了,已经从以前的十进制发展到三十六进制了.比如以前的一个汽车牌照“苏D88888,现在的牌照“苏DOYY11"。
小Y突发奇想,想知道他看到的大量汽车牌照中最近的两个汽车牌照相差多少?
若干行(不超过500000行),每行为一个汽车牌照。
每个汽车牌照为一个7位的字符串, 格式为SDxxxxx,其中一个x表示一个0~9或
A~Z,所涉及的字母均为大写。
一行一个数,表示最接近的两个汽车牌照之间的差值,要求为十进制数。
Sample Input 1
SD12345 SD88888 SD22222 SD99999
Sample Output 1
1678245
- #include<iostream>
- #include<algorithm>
- #include<cstring>
- #include<cmath>
- using namespace std;
- int main(){
- long long sum=0,t[600000]={0},minn=99991029102;
- char a[600000],wer='S',rty='D';
- while(cin>>wer>>rty>>a){
- long long len=strlen(a),p=1;
- for(int i=len-1;i>=0;i--){
- if(a[i]<='9'){
- t[sum]+=(a[i]-'0')*p;
- }else{
- t[sum]+=(a[i]-'A'+10)*p;
- }p*=36;
- }sum++;
- }sort(t,t+sum);
- for(int i=1;i<sum;i++){
- if((t[i]-t[i-1])<minn){
- minn=t[i]-t[i-1];
- }
- }cout<<minn;
- return 0;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。