Showing posts with label Stl-map. Show all posts
Showing posts with label Stl-map. Show all posts

Tuesday, September 19, 2017

Uri 2338 - Morse

#include < bits/stdc++.h >
using namespace std;

int main()
{
    map < string , char > data;
    data["=.==="]        = 'a';
    data["===.=.=.="]    = 'b';
    data["===.=.===.="]    = 'c';
    data["===.=.="]        = 'd';
    data["="]        = 'e';
    data["=.=.===.="]    = 'f';
    data["===.===.="]        = 'g';
    data["=.=.=.="]    = 'h';
    data["=.="]        = 'i';
    data["=.===.===.==="]    = 'j';
    data["===.=.==="]        = 'k';
    data["=.===.=.="]    = 'l';
    data["===.==="]        = 'm';
    data["===.="]        = 'n';
    data["===.===.==="]        = 'o';
    data["=.===.===.="]    = 'p';
    data["===.===.=.==="]    = 'q';
    data["=.===.="]        = 'r';
    data["=.=.="]     = 's';
    data["==="]        = 't';
    data["=.=.==="]        = 'u';
    data["=.=.=.==="]    = 'v';
    data["=.===.==="]        = 'w';
    data["===.=.=.==="]    = 'x';
    data["===.=.===.==="]    = 'y';
    data["===.===.=.="]    = 'z';
    data["===.===.===.===.==="]    = '0';
    data["=.===.===.===.==="]    = '1';
    data["=.=.===.===.==="]    = '2';
    data["=.=.=.===.==="]    = '3';
    data["=.=.=.=.==="]    = '4';
    data["=.=.=.=.="]    = '5';
    data["===.=.=.=.="]    = '6';
    data["===.===.=.=.="]    = '7';
    data["===.===.===.=.="]    = '8';
    data["===.===.===.===.="]    = '9';
    data["=.===.=.===.=.==="]  = '.';
    data["===.===.=.=.===.==="]  = ',';
    data["=.=.===.===.=.="]  = '?';
    data["=.===.===.===.===.="]  = '\'';
    data["===.=.===.=.===.==="]  = '!';
    data["===.=.=.===.="]    = '/';
    data["===.=.===.===.="]    = '(';
    data["===.=.===.===.=.==="]  = ')';
    data["=.===.=.=.="]    = '&';
    data["===.===.===.=.=.="]  = ':';
    data["===.=.===.=.===.="]  = ';';
    data["===.=.=.=.==="]    = '=';
    data["=.===.=.===.="]    = '+';
    data["===.=.=.=.=.==="]  = '-';
    data["=.=.===.===.=.==="]  = '_';
    data["=.===.=.=.===.="]  = '"';
    data["=.===.===.=.===.="]  = '@';
    string line;
    int n,tc = 0;
    cin  >>  n;
    getline(cin,line);
    while(n--){
        if(tc != 0) cout << endl;
        int dot = 0;
        getline(cin,line);
        string text;
        for(int i = 0;  i < line.size() ; i++ ){
            if(line[i] == '.') dot++;
            else{
                if(dot == 3) text += " ";
                else if(dot == 7)  text += "  ";
                else if(dot == 1) text += '.';
                text +=  line[i];
                dot = 0;
            }
        }
        line  = text;
        stringstream word;
        word << line;

        while(word >> line){
            cout << data[line];

            if(word.good()){
                char ch = word.get();
                     ch = word.peek();
                 if(ch == ' ' ) cout << " " ;
            }
        }
        cout << endl;
    }

    return 0;
}

Sunday, April 9, 2017

Uri 1652 - Deli Deli

#include<bits/stdc++.h>
using namespace std;

int main(){
    string s,s1;
    int n,k;
    cin >> n >> k;
    map < string , string > ans;
    while(n--){
        cin >> s >> s1;
        ans.insert(pair < string , string > (s,s1));
            }
            while(k--){
                cin >> s;
                s1 = s;
                if(ans.count(s) != 0)
                    cout << ans.find(s)->second << endl;
                else{
                    if(s[s.size()-1] == 'y' and (s[s.size()-2] != 'a' and s[s.size()-2] != 'e' and s[s.size()-2] != 'i' and s[s.size()-2] != 'o' and  s[s.size()-2] != 'u'))
                        s[s.size()-1] = 'i',s +="es";
                    else if(s[s.size()-1] == 'o' or (s[s.size()-1] == 's') or (s[s.size()-2] == 'c' and (s[s.size()-1] == 'h')) or (s[s.size()-2] == 's' and s[s.size()-1] == 'h') or (s[s.size()-1] == 'x'))
                        s += "es";
                    else
                        s += "s";
                    cout << s << endl;
                    ans.insert(pair(s1,s));
                }
            }
    return 0;
}

Friday, April 7, 2017

Uri 2252 - Discovering Password

#include <bits/stdc++.h>
using namespace std;
typedef long double LD;

template
struct less_first {
    typedef pair < T1, T2 > type;
    bool operator ()(type const& a, type const& b) const {
        return a.first > b.first;
    }
};

int main()
{
    //freopen("in.txt","r",stdin);
    ios_base::sync_with_stdio(false);cin.tie(NULL);
    int n,c = 0;
    while(cin >> n){
        map < LD, int > ans;
        LD a;
        for(int i = 0; i < 10 ;i++) {
                cin >> a;
         while(ans.count(a) != 0){
            a -= (LD)1e-15;
         }
        ans.insert(pair < LD,int > (a,i));
        }
     vector < pair < LD, int > > ans1(ans.begin(), ans.end());
     sort(ans1.begin(), ans1.end(), less_first < LD, int > ());
     vector > :: iterator it = ans1.begin();

     int i = 0;
     cout << "Caso " << ++c << ": ";
     for( vector < pair < LD, int > > :: iterator it = ans1.begin() ; it != ans1.end() ;it++,i++){
        if(i == n) break;
        cout << it->second ;
     }
        cout << endl;
    }
    return 0;
}