Advertisement
Riposati

nome para numero - 2097 URI

Jan 26th, 2017
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.55 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. map<string,long long>mapa;
  6. string numero,palavra;
  7. long long sum,resp;
  8.  
  9. void preencheMapa(){
  10.     mapa.insert(make_pair("zero",0));
  11.     mapa.insert(make_pair("um",1));
  12.     mapa.insert(make_pair("dois",2));
  13.     mapa.insert(make_pair("tres",3));
  14.     mapa.insert(make_pair("quatro",4));
  15.     mapa.insert(make_pair("cinco",5));
  16.     mapa.insert(make_pair("seis",6));
  17.     mapa.insert(make_pair("sete",7));
  18.     mapa.insert(make_pair("oito",8));
  19.     mapa.insert(make_pair("nove",9));
  20.     mapa.insert(make_pair("dez",10));
  21.     mapa.insert(make_pair("onze",11));
  22.     mapa.insert(make_pair("doze",12));
  23.     mapa.insert(make_pair("treze",13));
  24.     mapa.insert(make_pair("quatorze",14));
  25.     mapa.insert(make_pair("quinze",15));
  26.     mapa.insert(make_pair("dezesseis",16));
  27.     mapa.insert(make_pair("dezessete",17));
  28.     mapa.insert(make_pair("dezoito",18));
  29.     mapa.insert(make_pair("dezenove",19));
  30.     mapa.insert(make_pair("vinte",20));
  31.     mapa.insert(make_pair("trinta",30));
  32.     mapa.insert(make_pair("quarenta",40));
  33.     mapa.insert(make_pair("cinquenta",50));
  34.     mapa.insert(make_pair("sessenta",60));
  35.     mapa.insert(make_pair("setenta",70));
  36.     mapa.insert(make_pair("oitenta",80));
  37.     mapa.insert(make_pair("noventa",90));
  38.     mapa.insert(make_pair("cem",100));
  39.     mapa.insert(make_pair("cento",100));
  40.     mapa.insert(make_pair("duzentos",200));
  41.     mapa.insert(make_pair("trezentos",300));
  42.     mapa.insert(make_pair("quatrocentos",400));
  43.     mapa.insert(make_pair("quinhentos",500));
  44.     mapa.insert(make_pair("seiscentos",600));
  45.     mapa.insert(make_pair("setecentos",700));
  46.     mapa.insert(make_pair("oitocentos",800));
  47.     mapa.insert(make_pair("novecentos",900));
  48.     mapa.insert(make_pair("mil",1000));
  49.     mapa.insert(make_pair("milhao",1e6));
  50.     mapa.insert(make_pair("milhoes",1e6));
  51.     mapa.insert(make_pair("bilhao",1e9));
  52.     mapa.insert(make_pair("bilhoes",1e9));
  53.     mapa.insert(make_pair("trilhao",1e12));
  54.     mapa.insert(make_pair("trilhoes",1e12));
  55. }
  56.  
  57. int main()
  58. {
  59.     preencheMapa();
  60.  
  61.     ios_base::sync_with_stdio(false);
  62.     cin.tie(NULL);
  63.     cout.tie(NULL);
  64.     stringstream ss;
  65.  
  66.     while(getline(cin,numero)){
  67.  
  68.         sum = 0;
  69.         resp = 0;
  70.         ss.clear();
  71.  
  72.         ss << numero;
  73.  
  74.         while( ss >> palavra ){
  75.  
  76.             if(mapa[palavra] > 900)
  77.                 resp += (max( 1LL,sum ) * mapa[palavra]) , sum = 0;
  78.             else
  79.                 sum += mapa[palavra];
  80.  
  81.         }
  82.         printf("%lld\n",resp + sum);
  83.     }
  84.  
  85.     return 0;
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement