Submission #1177330


Source Code Expand

#include <iostream>
#include <string>
using namespace std;

bool checkString(int n, string s1, string s2, char spec1, char spec2)
{
    s2[0] = spec1;
    s2[1] = spec2;
    
    for(int i = 1; i < n - 1; i++)
    {
        if(s1[i] == 'o' && s2[i] == 'S')
        {
            s2[i + 1] = s2[i - 1];
        }
        else if(s1[i] == 'o' && s2[i] == 'W')
        {
            if(s2[i - 1] == 'S')
            {
                s2[i + 1] = 'W';
            }
            else
            {
                s2[i + 1] = 'S';
            }
        }
        else if(s1[i] == 'x' && s2[i] == 'S')
        {
            if(s2[i - 1] == 'S')
            {
                s2[i + 1] = 'W';
            }
            else
            {
                s2[i + 1] = 'S';
            }
        }
        else if(s1[i] == 'x' && s2[i] == 'W')
        {
            s2[i + 1] = s2[i - 1];
        }
    }
    
    if(s1[n - 1] == 'o' && s2[n - 1] == 'S')
    {
        if(s2[0] == s2[n - 2])
            return true;
        else
            return false;
    }
    else if(s1[n - 1] == 'o' && s2[n - 1] == 'W')
    {
        if(s2[0] != s2[n - 2])
            return true;
        else
            return false;
    }
    else if(s1[n - 1] == 'x' && s2[n - 1] == 'S')
    {
        if(s2[0] != s2[n -2])
            return true;
        else
            return false;
    }
    else if(s1[n - 1] == 'x' && s2[n - 1] == 'W')
    {
        if(s2[0] == s2[n - 2])
            return true;
        else
            return false;
    }
    else
        return false;
}

string changeString(int n, string s1, string s2, char spec1, char spec2)
{
    s2[0] = spec1;
    s2[1] = spec2;
    
    for(int i = 1; i < n - 1; i++)
    {
        if(s1[i] == 'o' && s2[i] == 'S')
        {
            s2[i + 1] = s2[i - 1];
        }
        else if(s1[i] == 'o' && s2[i] == 'W')
        {
            if(s2[i - 1] == 'S')
            {
                s2[i + 1] = 'W';
            }
            else
            {
                s2[i + 1] = 'S';
            }
        }
        else if(s1[i] == 'x' && s2[i] == 'S')
        {
            if(s2[i - 1] == 'S')
            {
                s2[i + 1] = 'W';
            }
            else
            {
                s2[i + 1] = 'S';
            }
        }
        else if(s1[i] == 'x' && s2[i] == 'W')
        {
            s2[i + 1] = s2[i - 1];
        }
    }
    
    return s2;
}

int main()
{
    int n;
    string s, s2;
    cin >> n >> s;
    s2 = s;
    
    if(checkString(n, s, s2, 'S', 'S'))
        cout << changeString(n, s, s2, 'S', 'S') << endl;
    else if(checkString(n, s, s2, 'S', 'W'))
        cout << changeString(n, s, s2, 'S', 'W') << endl;
    else if(checkString(n, s, s2, 'W', 'S'))
        cout << changeString(n, s, s2, 'W', 'S') << endl;
    else if(checkString(n, s, s2, 'W', 'W'))
        cout << changeString(n, s, s2, 'W', 'W') << endl;
    else
        cout << "-1" << endl;
    
    return 0;
}

Submission Info

Submission Time
Task D - Menagerie
User aabb15768
Language C++14 (GCC 5.4.1)
Score 0
Code Size 3097 Byte
Status WA
Exec Time 8 ms
Memory 640 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 500
Status
AC × 3
AC × 9
WA × 7
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 WA 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 WA 7 ms 640 KB
06.txt AC 6 ms 640 KB
07.txt WA 2 ms 256 KB
08.txt AC 2 ms 384 KB
09.txt AC 1 ms 256 KB
10.txt WA 2 ms 384 KB
11.txt WA 7 ms 640 KB
12.txt WA 7 ms 640 KB
13.txt WA 8 ms 640 KB