Submission #677249

# Submission time Handle Problem Language Result Execution time Memory
677249 2023-01-02T16:16:33 Z Ariadna Crtanje (COCI20_crtanje) C++14
30 / 50
1 ms 212 KB
#include <bits/stdc++.h>

using namespace std;

int main()
{
    int n;
    cin >> n;
    vector < pair < int, int > > worth(n + 1, {0, 0});
    int maximum = 0, minimum = 0;
    for (int i = 1; i <= n; ++i) {
        char c; 
        cin >> c;
        if (c == '+') {
            worth[i] = make_pair(worth[i - 1].first + 1, 1);
        } else if (c == '-') {
            worth[i] = make_pair(worth[i - 1].first - 1, -1);
        } else {
            worth[i] = make_pair(worth[i - 1].first, 0);
        }
        maximum = max(maximum, worth[i].first);
        minimum = min(minimum, worth[i].first);
    }
    
    int h = maximum - minimum;
    for (int i = 0; i < h; ++i) {
        int p = maximum - i;
        for (int j = 1; j <= n; ++j) {
            // posición actual = maximum - i
            int a = worth[j].second;
            if (a == 1) { // +
                if (p == worth[j].first)
                    cout << '/';
                else cout << '.';
            } else if (a == 0) { // =
                if (worth[j - 1].second == 1) {
                    if (p == worth[j].first + 1) {
                        cout << '_';
                        ++worth[j].first; 
                    } else cout << '.';
                } else if (worth[j - 1].second == -1) {
                    if (p == worth[j].first + 1) {
                        cout << '_';
                        ++worth[j].first; 
                    } else cout << '.';
                } else {
                    if (p == worth[j - 1].first)
                        cout << '_';
                    else
                        cout << '.';
                }
            } else { // -
                if (p == worth[j].first + 1)
                    cout << '\\';
                else cout << '.';
            }
        }
        cout << '\n';
    }
    
    return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Incorrect 0 ms 212 KB Output isn't correct
3 Correct 1 ms 212 KB Output is correct
4 Incorrect 0 ms 212 KB Output isn't correct
5 Correct 1 ms 212 KB Output is correct