Submission #1177190
Source Code Expand
import java.util.Scanner; public class Main { public static char[] assign; public static char[] ans; public static int n; public static boolean check() { int i = n - 1; for(int cnt = 0; cnt < 3; cnt++) { i %= n; int next = (i + 1) % n; int back = (i + n - 1) % n; if(assign[i] == 'o' && ans[i] == 'S') { if(ans[back] == 'S' && ans[next] == 'W') { return false; }else if(ans[back] == 'W' && ans[next] == 'S') { return false; } } else if(assign[i] == 'o' && ans[i] == 'W') { if(ans[back] == 'S' && ans[next] == 'S') { return false; }else if(ans[back] == 'W' && ans[next] == 'W') { return false; } } else if(assign[i] == 'x' && ans[i] == 'S') { if(ans[back] == 'S' && ans[next] == 'S') { return false; }else if(ans[back] == 'W' && ans[next] == 'W') { return false; } } else if(assign[i] == 'x' && ans[i] == 'W') { if(ans[back] == 'S' && ans[next] == 'W') { return false; }else if(ans[back] == 'W' && ans[next] == 'S') { return false; } } i++; } return true; } public static void main(String[] args) { Scanner sc = new Scanner(System.in); n = sc.nextInt(); assign = sc.next().toCharArray(); for(int cnt = 0; cnt < 4; cnt++) { ans = new char[n]; if(cnt == 0) { ans[0] = 'S'; ans[1] = 'S'; } else if(cnt == 1) { ans[0] = 'S'; ans[1] = 'W'; } else if(cnt == 2) { ans[0] = 'W'; ans[1] = 'S'; } else if (cnt == 3) { ans[0] = 'W'; ans[1] = 'W'; } // i番目はi-1番目とi-2番目によって定まる(i >= 1) for (int i = 1; i < n; i++) { int next = (i + 1) % n; int back = (i + n - 1) % n; if(assign[i] == 'o') { if(ans[i] == 'S') { if(ans[back] == 'S') { ans[next] = 'S'; } else if(ans[back] == 'W') { ans[next] = 'W'; } } else if(ans[i] == 'W') { if(ans[back] == 'S') { ans[next] = 'W'; } else if(ans[back] == 'W') { ans[next] = 'S'; } } } else if(assign[i] == 'x') { if(ans[i] == 'S') { if(ans[back] == 'S') { ans[next] = 'W'; } else if(ans[back] == 'W') { ans[next] = 'S'; } } else if(ans[i] == 'W') { if(ans[back] == 'S') { ans[next] = 'S'; } else if(ans[back] == 'W') { ans[next] = 'W'; } } } } if(check()) { String str = String.valueOf(ans); System.out.println(str); return; } } System.out.println(-1); } }
Submission Info
Submission Time | |
---|---|
Task | D - Menagerie |
User | takuto0817 |
Language | Java8 (OpenJDK 1.8.0) |
Score | 500 |
Code Size | 2705 Byte |
Status | AC |
Exec Time | 178 ms |
Memory | 26688 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 500 / 500 | ||||
Status |
|
|
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 | 91 ms | 22996 KB |
00_example_02.txt | AC | 96 ms | 19796 KB |
00_example_03.txt | AC | 91 ms | 19796 KB |
01.txt | AC | 158 ms | 23528 KB |
02.txt | AC | 134 ms | 22996 KB |
03.txt | AC | 108 ms | 20052 KB |
04.txt | AC | 91 ms | 23764 KB |
05.txt | AC | 164 ms | 26264 KB |
06.txt | AC | 163 ms | 26688 KB |
07.txt | AC | 125 ms | 20052 KB |
08.txt | AC | 126 ms | 19412 KB |
09.txt | AC | 112 ms | 19540 KB |
10.txt | AC | 130 ms | 24020 KB |
11.txt | AC | 173 ms | 24840 KB |
12.txt | AC | 178 ms | 25220 KB |
13.txt | AC | 167 ms | 22028 KB |