Submission #68313

# Submission time Handle Problem Language Result Execution time Memory
68313 2018-08-16T15:50:44 Z aome parentrises (BOI18_parentrises) C++17
11 / 100
3 ms 740 KB
#include <bits/stdc++.h>

using namespace std;

namespace Task1 {
	char color[1000005];

	void solve() {
		int q; cin >> q;
		while (q--) {
			string s; cin >> s;
			stack<int> st;
			stack<int> st2;
			stack<int> st3;
			bool fail = 0;
			for (int i = 0; i < s.size(); ++i) {
				if (s[i] == '(') st.push(i), color[i] = 'G';
				else {
					if (st.size()) {
						st2.push(i), color[i] = 'G', st3.push(st.top()), st.pop();
					}
					else {
						if (!st2.size()) { fail = 1; break; }
						color[i] = 'R', color[st2.top()] = 'B', st2.pop(), st3.pop();
					}
				}
			}
			while (st.size() && st3.size()) {
				color[st.top()] = 'R', color[st3.top()] = 'B';
				st.pop(), st3.pop();
			}
			fail |= st.size() != 0;
			if (fail) cout << "impossible\n";
			else {
				for (int i = 0; i < s.size(); ++i) cout << color[i]; cout << '\n';
			}
		}
	}
}

namespace Task2 {
	void solve() {

	}
}

int main() {
	ios::sync_with_stdio(false);
	int P; cin >> P;
	if (P == 1) Task1::solve();
	else Task2::solve();
}

Compilation message

parentrises.cpp: In function 'void Task1::solve()':
parentrises.cpp:16:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    for (int i = 0; i < s.size(); ++i) {
                    ~~^~~~~~~~~~
parentrises.cpp:35:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (int i = 0; i < s.size(); ++i) cout << color[i]; cout << '\n';
                     ~~^~~~~~~~~~
parentrises.cpp:35:5: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
     for (int i = 0; i < s.size(); ++i) cout << color[i]; cout << '\n';
     ^~~
parentrises.cpp:35:58: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
     for (int i = 0; i < s.size(); ++i) cout << color[i]; cout << '\n';
                                                          ^~~~
# Verdict Execution time Memory Grader output
1 Correct 3 ms 248 KB Output is correct
2 Correct 3 ms 360 KB Output is correct
3 Correct 3 ms 528 KB Output is correct
4 Correct 3 ms 740 KB Output is correct
5 Incorrect 3 ms 740 KB Output isn't correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 740 KB Output is correct
2 Correct 2 ms 740 KB Output is correct
3 Correct 2 ms 740 KB Output is correct
4 Correct 3 ms 740 KB Output is correct
5 Correct 3 ms 740 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 740 KB Output is correct
2 Correct 2 ms 740 KB Output is correct
3 Correct 2 ms 740 KB Output is correct
4 Correct 3 ms 740 KB Output is correct
5 Correct 3 ms 740 KB Output is correct
6 Incorrect 3 ms 740 KB Output isn't correct
7 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 740 KB Output is correct
2 Correct 2 ms 740 KB Output is correct
3 Correct 2 ms 740 KB Output is correct
4 Correct 3 ms 740 KB Output is correct
5 Correct 3 ms 740 KB Output is correct
6 Incorrect 3 ms 740 KB Output isn't correct
7 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 740 KB Unexpected end of file - int32 expected
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 740 KB Unexpected end of file - int32 expected
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 740 KB Unexpected end of file - int32 expected