diff options
| author | Aditya Naik | 2018-05-10 00:15:29 -0400 |
|---|---|---|
| committer | Aditya Naik | 2018-05-10 00:15:29 -0400 |
| commit | 631ca6817d552db1725c7d6a445705f709302139 (patch) | |
| tree | 4ed1e943305fd5ff0772336034ee2a47458e68cc /12085/mobile.cpp | |
| parent | 42fe0d8a06c1cecb7771823b9ae51220c469dc82 (diff) | |
reorg
Diffstat (limited to '12085/mobile.cpp')
| -rw-r--r-- | 12085/mobile.cpp | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/12085/mobile.cpp b/12085/mobile.cpp new file mode 100644 index 0000000..8daba81 --- /dev/null +++ b/12085/mobile.cpp @@ -0,0 +1,49 @@ +#include <iostream> +#include <string> +#include <math.h> +using namespace std; + +void print_range(int, int, int); + +int main(){ + int n, c=0; + cin>>n; + while(n>0){ + cout<<"Case "<<++c<<":\n"; + int i, nums[100000]; + for(i=0; i<n; i++) + cin>>nums[i]; + + int higher, lower, len=1, temp = nums[0]; + while(temp /= 10) + len++; + + for(i=0; i<n; i++){ + if(nums[i+1]-nums[i]==1){ + lower = nums[i]; + while(nums[i+1]-nums[i]==1){ + i++; + } + higher = nums[i]; + print_range(lower, higher, len); + } + else + cout<<"0"<<nums[i]<<endl; + } + cout<<endl; + cin>>n; + } +} + +void print_range(int lower, int higher, int len){ + int i, k; + string num; + for(i=len-1; ; i--){ + if(lower/int(pow(10.0,i)) != higher/int(pow(10.0,i))) + break; + } + for(k=len-(i+1); k<len; k++){ + num += to_string(higher)[k]; + } + cout<<"0"<<lower<<"-"<<num<<endl; +} |
