summaryrefslogtreecommitdiff
path: root/12085/mobile.cpp
diff options
context:
space:
mode:
authorAditya Naik2018-05-10 00:15:29 -0400
committerAditya Naik2018-05-10 00:15:29 -0400
commit631ca6817d552db1725c7d6a445705f709302139 (patch)
tree4ed1e943305fd5ff0772336034ee2a47458e68cc /12085/mobile.cpp
parent42fe0d8a06c1cecb7771823b9ae51220c469dc82 (diff)
reorg
Diffstat (limited to '12085/mobile.cpp')
-rw-r--r--12085/mobile.cpp49
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;
+}