Task: | Letter Game |
Sender: | Wave of Technology |
Submission time: | 2018-05-26 15:59:39 +0300 |
Language: | C++ |
Status: | READY |
Result: | WRONG ANSWER |
test | verdict | time | |
---|---|---|---|
#1 | ACCEPTED | 0.01 s | details |
#2 | ACCEPTED | 0.01 s | details |
#3 | ACCEPTED | 0.01 s | details |
#4 | ACCEPTED | 0.01 s | details |
#5 | ACCEPTED | 0.01 s | details |
#6 | ACCEPTED | 0.01 s | details |
#7 | ACCEPTED | 0.01 s | details |
#8 | ACCEPTED | 0.01 s | details |
#9 | ACCEPTED | 0.02 s | details |
#10 | WRONG ANSWER | 0.01 s | details |
#11 | WRONG ANSWER | 0.01 s | details |
#12 | WRONG ANSWER | 0.01 s | details |
#13 | WRONG ANSWER | 0.01 s | details |
#14 | WRONG ANSWER | 0.01 s | details |
#15 | WRONG ANSWER | 0.01 s | details |
#16 | WRONG ANSWER | 0.01 s | details |
#17 | WRONG ANSWER | 0.01 s | details |
#18 | WRONG ANSWER | 0.01 s | details |
#19 | WRONG ANSWER | 0.01 s | details |
Compiler report
input/code.cpp: In function 'll solve()': input/code.cpp:23:1: warning: no return statement in function returning non-void [-Wreturn-type] } ^ input/code.cpp: In function 'int main()': input/code.cpp:89:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] if (res.size() != i) { continue; } ~~~~~~~~~~~^~~~ input/code.cpp:100:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] if (res.size() != i) { continue; } ~~~~~~~~~~~^~~~
Code
#include <bits/stdc++.h>using namespace std;typedef long long ll;typedef pair<ll, ll> PLL;const ll INF = 1000000000000000LL;ll n;template<typename T>void print_vector(vector<T> & v) {for (auto x : v) {cout << x << " ";}}ll solve() {ll n, m;cin >> n >> m;}bool test(string s) {bool bfound = false;for (auto c : s) {if (c=='B') { bfound = true; }if (bfound && c == 'A') { return false;}}return true;}int main() {cin.tie(NULL);std::ios::sync_with_stdio(false);ll n;cin >> n;string s;cin >> s;if (n==1) {cout << "0\n";return 0;}if (n==2) {for (char c : s) {if (c=='A') {cout << "0\n";return 0;}if (c=='B') {cout << "-1\n";return 0;}}}n = 2*n;vector<string> res;for (int i=0; i<1000; i++) {int xpos = 0;for (int j=0; j<n; j++) {if (s[j] == '.') {xpos = j;break;}}for (int j=0; j<xpos; j++) {if (s[j] == 'B' && s[j+1] == 'B') {swap(s[j], s[xpos]);swap(s[j+1], s[xpos+1]);res.push_back(s);break;}}if (res.size() != i) { continue; }for (int j=xpos; j<n-1; j++) {if (s[j] == 'A' && s[j+1] == 'A') {swap(s[j], s[xpos]);swap(s[j+1], s[xpos+1]);res.push_back(s);break;}}if (res.size() != i) { continue; }while(true) {int j = rand() % (n-1);// cout << j << " " << xpos << endl;if (abs(j-xpos) >=2) {swap(s[j], s[xpos]);swap(s[j+1], s[xpos+1]);res.push_back(s);break;}}if (test(res.back())) { break; }}if (!test(res.back())) { cout << -1 << endl; return 0; }cout << res.size() << endl;for (auto ss : res) {cout << ss << endl;}return 0;}
Test details
Test 1
Verdict: ACCEPTED
input |
---|
1 .. |
correct output |
---|
0 |
user output |
---|
0 |
Test 2
Verdict: ACCEPTED
input |
---|
2 A..B |
correct output |
---|
0 |
user output |
---|
0 |
Test 3
Verdict: ACCEPTED
input |
---|
2 B..A |
correct output |
---|
-1 |
user output |
---|
-1 |
Test 4
Verdict: ACCEPTED
input |
---|
3 AA..BB |
correct output |
---|
0 |
user output |
---|
1 ..AABB |
Test 5
Verdict: ACCEPTED
input |
---|
3 AB..AB |
correct output |
---|
-1 |
user output |
---|
-1 |
Test 6
Verdict: ACCEPTED
input |
---|
3 AB..BA |
correct output |
---|
2 ABBA.. A..ABB |
user output |
---|
9 ..ABBA BBA..A ..ABBA AB..BA ... |
Test 7
Verdict: ACCEPTED
input |
---|
3 BA..AB |
correct output |
---|
2 ..BAAB AAB..B |
user output |
---|
5 ..BAAB AAB..B ..BAAB AAB..B ... |
Test 8
Verdict: ACCEPTED
input |
---|
3 BA..BA |
correct output |
---|
-1 |
user output |
---|
-1 |
Test 9
Verdict: ACCEPTED
input |
---|
3 BB..AA |
correct output |
---|
2 ..BBAA AABB.. |
user output |
---|
4 ..BBAA AABB.. AA..BB ..AABB |
Test 10
Verdict: WRONG ANSWER
input |
---|
100 BBABAABBBAAAAABBBBBBAAAABAAABA... |
correct output |
---|
140 ..ABAABBBAAAAABBBBBBAAAABAAABA... |
user output |
---|
-1 |
Test 11
Verdict: WRONG ANSWER
input |
---|
100 AABBABBAAABABBBBBBBBAABABAAAAB... |
correct output |
---|
142 AA..ABBAAABABBBBBBBBAABABAAAAB... |
user output |
---|
-1 |
Test 12
Verdict: WRONG ANSWER
input |
---|
100 AAAAABAABBBABAABAAABABBAAAABAA... |
correct output |
---|
134 AAAAA..ABBBABAABAAABABBAAAABAA... |
user output |
---|
-1 |
Test 13
Verdict: WRONG ANSWER
input |
---|
100 BBBAAAABAABABAABAABBBABBABABAA... |
correct output |
---|
142 ..BAAAABAABABAABAABBBABBABABAA... |
user output |
---|
-1 |
Test 14
Verdict: WRONG ANSWER
input |
---|
100 BABBBAAAAABABAAABBBAABBABABBBB... |
correct output |
---|
138 ..BBBAAAAABABAAABBBAABBABABBBB... |
user output |
---|
-1 |
Test 15
Verdict: WRONG ANSWER
input |
---|
100 ABAAAAABBAAAAAAAAAABABAABBBBBB... |
correct output |
---|
126 A..AAAABBAAAAAAAAAABABAABBBBBB... |
user output |
---|
-1 |
Test 16
Verdict: WRONG ANSWER
input |
---|
100 ABBBBBABBABABABBBABAABAAAABBAA... |
correct output |
---|
128 A..BBBABBABABABBBABAABAAAABBAA... |
user output |
---|
-1 |
Test 17
Verdict: WRONG ANSWER
input |
---|
100 BAAABBABBAAAABABAAABABABBAAABA... |
correct output |
---|
139 ..AABBABBAAAABABAAABABABBAAABA... |
user output |
---|
-1 |
Test 18
Verdict: WRONG ANSWER
input |
---|
100 BBBBBABBAAABBAABBBBBABABABAABA... |
correct output |
---|
133 ..BBBABBAAABBAABBBBBABABABAABA... |
user output |
---|
-1 |
Test 19
Verdict: WRONG ANSWER
input |
---|
100 BABBBBBBABBBABBBBBBAABABAAABAA... |
correct output |
---|
128 ..BBBBBBABBBABBBBBBAABABAAABAA... |
user output |
---|
-1 |