Submission #1966166


Source Code Expand

using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Runtime.InteropServices;
using System.Runtime.Remoting.Messaging;
using System.Security.Principal;
using System.Text;
class Simple
{
    int N;
    string S;
    void Solve() {
        //input
        N = io.Int;
        S = io.String;
        //cal
        var sArr = S.Select(c => c.ToString()).ToArray();
        var sw = new string[] { "S", "W" };
        var ring = new string[0];
        Func<string, string> rev = (a) => a == "S" ? "W" : "S";
        Func<int, bool> isHonest = (index) => ring[index] == "S";
        Func<int, bool> isSaySame = (index) => sArr[index] == "o";
        Action<int> setSame = (index) => ring[index + 1] = ring[index - 1];
        Action<int> setDiff = (index) => ring[index + 1] = rev(ring[index - 1]);
        Func<bool> isOK = () => ring[N - 2] == ring[0];
        Func<bool> isValid = () => {
            if (isHonest(N - 1))
                if (isSaySame(N - 1))
                    return isOK();
                else
                    return !isOK();
            else
                if (isSaySame(N - 1))
                return !isOK();
            else
                return isOK();
        };
        for (int n0 = 0; n0 < sw.Length; ++n0) {
            for (int n1 = 0; n1 < sw.Length; ++n1) {
                ring = new string[N];
                ring[0] = sw[n0];
                ring[1] = sw[n1];
                for (int i = 1; i < N - 1; ++i) {
                    if (isHonest(i))
                        if (isSaySame(i))
                            setSame(i);
                        else
                            setDiff(i);
                    else
                        if (isSaySame(i))
                        setDiff(i);
                    else
                        setSame(i);
                }
                if (isValid()) {
                    //ret
                    Console.WriteLine(string.Join("", ring));
                    return;
                }
            }
        }
        //ret
        Console.WriteLine(-1);

    }
    SimpleIO io = new SimpleIO();
    public static void Main(string[] args) => new Simple().Stream();
    void Stream() {
        //var exStdIn = new System.IO.StreamReader("stdin.txt");
        //System.Console.SetIn(exStdIn);        
        Solve();
        io.writeFlush();
    }
}
class SimpleIO
{
    string[] nextBuffer;
    int BufferCnt;
    char[] cs = new char[] { ' ' };
    StreamWriter sw = new StreamWriter(Console.OpenStandardOutput()) { AutoFlush = false };
    public SimpleIO() {
        nextBuffer = new string[0];
        BufferCnt = 0;
        Console.SetOut(sw);
    }
    public string Next() {
        if (BufferCnt < nextBuffer.Length) return nextBuffer[BufferCnt++];
        string st = Console.ReadLine();
        while (st == "") st = Console.ReadLine();
        nextBuffer = st.Split(cs, StringSplitOptions.RemoveEmptyEntries);
        BufferCnt = 0;
        return nextBuffer[BufferCnt++];
    }
    public string String => Next();
    public char Char => char.Parse(String);
    public int Int => int.Parse(String);
    public long Long => long.Parse(String);
    public double Double => double.Parse(String);
    public void writeFlush() { Console.Out.Flush(); }
}

Submission Info

Submission Time
Task D - Menagerie
User rui0422
Language C# (Mono 4.6.2.0)
Score 0
Code Size 3496 Byte
Status WA
Exec Time 50 ms
Memory 18656 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 26 ms 9428 KB
00_example_02.txt AC 27 ms 13396 KB
00_example_03.txt AC 25 ms 9300 KB
01.txt WA 41 ms 12384 KB
02.txt AC 34 ms 11488 KB
03.txt AC 26 ms 9240 KB
04.txt AC 26 ms 13396 KB
05.txt WA 48 ms 18272 KB
06.txt AC 43 ms 15456 KB
07.txt WA 29 ms 11744 KB
08.txt AC 29 ms 10208 KB
09.txt AC 26 ms 9224 KB
10.txt WA 30 ms 12128 KB
11.txt WA 45 ms 15840 KB
12.txt WA 48 ms 17888 KB
13.txt WA 50 ms 18656 KB