Cod sursa(job #2630761)

Utilizator doyouhavethetimeStanculescu Gabriel doyouhavethetime Data 27 iunie 2020 01:32:03
Problema Trie Scor 5
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.94 kb
#include <bits/stdc++.h>
using namespace std;

map <string, int> M;
int query (string s) {
    cout << "Caut " << s << " in:\n";
    for (auto it: M)
        cout << it.first << ' ';

    cout << endl;
    auto it=M.lower_bound(s);
    advance(it, -1);
    cout << "Am gasit " << it->first << endl;

    int i=0;
    while (s[i]==it->first[i])
        ++i;
    return i;
}

int main () {
    ifstream fin ("trie.in");
    ofstream fout ("trie.out");

    string s;
    int n;
    while (fin >> n >> s)
        if (n==0)
            ++M[s];
        else
            if (n==1) {
                auto it=M.find(s);
                if (it->second=1)
                    M.erase(it);
                else
                    it->second--;
            }
            else
                if (n==2)
                    fout << M[s] << '\n';
                else
                    fout << query(s) << '\n';
    return 0;
}