Submission #1116758


Source Code Expand

#include <bits/stdc++.h>
using namespace std;

bool wolf[1<<20];
int n;
string s, ans;

bool tri(bool a0, bool a1) {
    wolf[0] = a0;
    wolf[1] = a1;
    for (int i = 2; i < n; i++) {
        if (wolf[i-1]) {
            if (s[i-1] == 'x') wolf[i] = wolf[i-2];
            else wolf[i] = !wolf[i-2];
        } else {
            if (s[i-1] == 'o') wolf[i] = wolf[i-2];
            else wolf[i] = !wolf[i-2];
        }
    }
    if (wolf[n-1]) {
        if (s[n-1] == 'o' && wolf[0] == wolf[n-2]) return false;
        if (s[n-1] == 'x' && wolf[0] != wolf[n-2]) return false;
    } else {
        if (s[n-1] == 'x' && wolf[0] == wolf[n-2]) return false;
        if (s[n-1] == 'o' && wolf[0] != wolf[n-2]) return false;
    }
    if (wolf[0]) {
        if (s[0] == 'o' && wolf[1] == wolf[n-1]) return false;
        if (s[0] == 'x' && wolf[1] != wolf[n-1]) return false;
    } else {
        if (s[0] == 'x' && wolf[1] == wolf[n-1]) return false;
        if (s[0] == 'o' && wolf[1] != wolf[n-1]) return false;
    }
    if (ans == "") {
        for (int i = 0; i < n; i++) {
            if (wolf[i]) ans += "W";
            else ans += "S";
        }
    }
}

int main() {
    //freopen("in.txt","r",stdin);
    cin >> n;
    getline(cin,s);
    getline(cin,s);
    wolf[0] = 1;
    wolf[1] = 1;
    if (tri(1,1) || tri(1,0) || tri(0,1) || tri(0,0)) cout << ans;
    else cout << -1;
	return 0;
}

Submission Info

Submission Time
Task D - Menagerie
User Kusika
Language C++14 (GCC 5.4.1)
Score 500
Code Size 1450 Byte
Status AC
Exec Time 7 ms
Memory 768 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 500 / 500
Status
AC × 3
AC × 16
Set Name Test Cases
Sample 00_example_01.txt, 00_example_02.txt, 00_example_03.txt
All 00_example_01.txt, 00_example_02.txt, 00_example_03.txt, 01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, 11.txt, 12.txt, 13.txt
Case Name Status Exec Time Memory
00_example_01.txt AC 1 ms 256 KB
00_example_02.txt AC 1 ms 256 KB
00_example_03.txt AC 1 ms 256 KB
01.txt AC 5 ms 512 KB
02.txt AC 4 ms 512 KB
03.txt AC 1 ms 256 KB
04.txt AC 1 ms 256 KB
05.txt AC 6 ms 768 KB
06.txt AC 7 ms 768 KB
07.txt AC 2 ms 256 KB
08.txt AC 2 ms 384 KB
09.txt AC 1 ms 256 KB
10.txt AC 2 ms 256 KB
11.txt AC 6 ms 768 KB
12.txt AC 6 ms 768 KB
13.txt AC 7 ms 768 KB