190C - STL - CodeForces Solution


dfs and similar *1500

Please click on ads to support us..

C++ Code:

#include <iostream>
#include <string>

void answer(const std::string& x)
{
    std::cout << x << '\n';
}

void no_answer()
{
    std::cout << "Error occurred" << '\n';
}

bool parse(std::string_view& q, std::string& t)
{
    if (!q.empty() && q[0] == ' ')
        q.remove_prefix(1);

    if (q.empty())
        return false;

    if (q[0] == 'i') {
        q.remove_prefix(3);
        t.append("int");
    } else {
        q.remove_prefix(4);
        t.append("pair<");
        if (!parse(q, t))
            return false;
        t.push_back(',');
        if (!parse(q, t))
            return false;
        t.push_back('>');
    }

    return true;
}

void solve(size_t n, const std::string& s)
{
    std::string t;
    std::string_view q = s;
    parse(q, t) && q.empty() ? answer(t) : no_answer();
}

int main()
{
    std::cin.tie(nullptr)->sync_with_stdio(false);

    size_t n;
    std::cin >> n >> std::ws;

    std::string s;
    std::getline(std::cin, s);

    solve(n, s);

    return 0;
}


Comments

Submit
0 Comments
More Questions

1706A - Another String Minimization Problem
1695B - Circle Game
1702B - Polycarp Writes a String from Memory
1701A - Grass Field
489C - Given Length and Sum of Digits
886B - Vlad and Cafes
915A - Garden
356A - Knight Tournament
1330A - Dreamoon and Ranking Collection
1692B - All Distinct
1156C - Match Points
1675A - Food for Animals
1328C - Ternary XOR
1689A - Lex String
1708B - Difference of GCDs
863A - Quasi-palindrome
1478A - Nezzar and Colorful Balls
1581B - Diameter of Graph
404A - Valera and X
908A - New Year and Counting Cards
146A - Lucky Ticket
1594C - Make Them Equal
1676A - Lucky
1700B - Palindromic Numbers
702C - Cellular Network
1672C - Unequal Array
1706C - Qpwoeirut And The City
1697A - Parkway Walk
1505B - DMCA
478B - Random Teams