CSES - HIIT Open 2018 - Results
Submission details
Task:Letter Game
Sender:Wave of Technology
Submission time:2018-05-26 15:59:39 +0300
Language:C++
Status:READY
Result:
Test results
testverdicttime
#1ACCEPTED0.01 sdetails
#2ACCEPTED0.01 sdetails
#3ACCEPTED0.01 sdetails
#4ACCEPTED0.01 sdetails
#5ACCEPTED0.01 sdetails
#6ACCEPTED0.01 sdetails
#7ACCEPTED0.01 sdetails
#8ACCEPTED0.01 sdetails
#9ACCEPTED0.02 sdetails
#100.01 sdetails
#110.01 sdetails
#120.01 sdetails
#130.01 sdetails
#140.01 sdetails
#150.01 sdetails
#160.01 sdetails
#170.01 sdetails
#180.01 sdetails
#190.01 sdetails

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:

input
100
BBABAABBBAAAAABBBBBBAAAABAAABA...

correct output
140
..ABAABBBAAAAABBBBBBAAAABAAABA...

user output
-1

Test 11

Verdict:

input
100
AABBABBAAABABBBBBBBBAABABAAAAB...

correct output
142
AA..ABBAAABABBBBBBBBAABABAAAAB...

user output
-1

Test 12

Verdict:

input
100
AAAAABAABBBABAABAAABABBAAAABAA...

correct output
134
AAAAA..ABBBABAABAAABABBAAAABAA...

user output
-1

Test 13

Verdict:

input
100
BBBAAAABAABABAABAABBBABBABABAA...

correct output
142
..BAAAABAABABAABAABBBABBABABAA...

user output
-1

Test 14

Verdict:

input
100
BABBBAAAAABABAAABBBAABBABABBBB...

correct output
138
..BBBAAAAABABAAABBBAABBABABBBB...

user output
-1

Test 15

Verdict:

input
100
ABAAAAABBAAAAAAAAAABABAABBBBBB...

correct output
126
A..AAAABBAAAAAAAAAABABAABBBBBB...

user output
-1

Test 16

Verdict:

input
100
ABBBBBABBABABABBBABAABAAAABBAA...

correct output
128
A..BBBABBABABABBBABAABAAAABBAA...

user output
-1

Test 17

Verdict:

input
100
BAAABBABBAAAABABAAABABABBAAABA...

correct output
139
..AABBABBAAAABABAAABABABBAAABA...

user output
-1

Test 18

Verdict:

input
100
BBBBBABBAAABBAABBBBBABABABAABA...

correct output
133
..BBBABBAAABBAABBBBBABABABAABA...

user output
-1

Test 19

Verdict:

input
100
BABBBBBBABBBABBBBBBAABABAAABAA...

correct output
128
..BBBBBBABBBABBBBBBAABABAAABAA...

user output
-1