Advertisement
Nusrat_Ullah

UVa 11616

Jan 28th, 2019
163
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.10 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. void Ar_to_Ro(int q)
  4. {
  5.     map<int,string>wq;
  6.     map<int,string>::reverse_iterator g;
  7.     wq[1000]="M";
  8.     wq[900]="CM";
  9.     wq[500]="D";
  10.     wq[400]="CD";
  11.     wq[100]="C";
  12.     wq[90]="XC";
  13.     wq[50]="L";
  14.     wq[40]="XL";
  15.     wq[10]="X";
  16.     wq[9]="IX";
  17.     wq[5]="V";
  18.     wq[4]="IV";
  19.     wq[1]="I";
  20.     for(g=wq.rbegin();g!=wq.rend();g++){
  21.         while(q>=g->first){
  22.             printf("%s",(g->second).c_str());
  23.             q-=g->first;
  24.         }
  25.     }
  26.     printf("\n");
  27. }
  28. void Ro_to_Ar(string q)
  29. {
  30.     int g,nt=0;
  31.     map<char,int>wq;
  32.     wq['I']=1;
  33.     wq['V']=5;
  34.     wq['X']=10;
  35.     wq['L']=50;
  36.     wq['C']=100;
  37.     wq['D']=500;
  38.     wq['M']=1000;
  39.     for(g=0;q[g];g++){
  40.         if(q[g+1]&&wq[q[g]]<wq[q[g+1]]){
  41.             nt+=wq[q[g+1]]-wq[q[g]];
  42.             g++;
  43.         }
  44.         else nt+=wq[q[g]];
  45.     }
  46.     printf("%d\n",nt);
  47. }
  48. int main()
  49. {
  50.     int w;
  51.     string q;
  52.     while(cin>>q){
  53.         if(q[0]>=65&&q[0]<=90) Ro_to_Ar(q);
  54.         else{
  55.             w=stoi(q);
  56.             Ar_to_Ro(w);
  57.         }
  58.     }
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement