Submission #1591598


Source Code Expand

#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<ctime>
#include<cctype>
#include<climits>
#include<iostream>
#include<string>
#include<vector>
#include<map>
#include<list>
#include<queue>
#include<deque>
#include<algorithm>
#include<numeric>
#include<utility>
#include<complex>
#include<memory>
#include<functional>
#include<set>
 
using namespace std;
 
#define ALL(g) (g).begin(),(g).end()
#define REP(i, x, n) for(int i = x; i < n; i++)
#define rep(i,n) REP(i,0,n)
#define F(i,j,k) fill(i[0],i[0]+j*j,k)
#define P(p) cout<<(p)<<endl;
#define EXIST(s,e) ((s).find(e)!=(s).end())
#define INF 1<<25
#define pb push_back
 
typedef vector<int> vi;
typedef vector<long long> vl;
typedef vector<double> vd;
typedef pair<int,int> pii;
typedef pair<long,long> pll;
typedef long long ll;
int N;
string s;
char decision[4][100001];
//連続する二匹が確定すれば全部確定する。4通りを試す
bool check(int num,int now){
		if((s[now-1]=='o'&&decision[num][now-1]=='S')||(s[now-1]=='x'&&decision[num][now-1]=='W')){
			decision[num][now]=decision[num][now-2];
		//	cout<<num<<" "<<now<<" "<<decision[num][now]<<endl;
			}				
		else{
			if(decision[num][now-2]=='W')
				decision[num][now]='S';
			else
				decision[num][now]='W';

	//		cout<<num<<" "<<now<<" "<<decision[num][now]<<endl;
	}
		if(now==N){
	/*		if((s[now-1]=='o'&&decision[num][now-1]=='S')||(s[now-1]=='x'&&decision[num][now-1]=='W')){
				if(decision[num][N-2]!=decision[num][0])return false;
			}
			else 
				if(decision[num][N-2]==decision[num][0])return false;
		*/	if(decision[num][now-1]==decision[num][0]){
	//			cout<<num<<"  ";
				rep(i,N)
					cout<<decision[num][i];
				cout<<endl;
					return true;
			}
			else
	//			cout<<"no"<<endl;

			return false;
		}

	 return	check(num,now+1);

}

int main(){
	cin>>N>>s;
	decision[0][0]='S';
	decision[0][1]='S';

	decision[1][0]='W';
	decision[1][1]='S';

	decision[2][0]='S';
	decision[2][1]='W';

	decision[3][0]='W';
	decision[3][1]='W';
	if(check(0,2))return 0;
	if(check(1,2))return 0;
	if(check(2,2))return 0;
	if(check(3,2))return 0;

	cout<<"-1"<<endl;
	return 0;
}

Submission Info

Submission Time
Task D - Menagerie
User ke_to
Language C++14 (GCC 5.4.1)
Score 0
Code Size 2239 Byte
Status WA
Exec Time 12 ms
Memory 7168 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 500
Status
AC × 2
WA × 1
AC × 5
WA × 11
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 WA 1 ms 256 KB
00_example_03.txt AC 1 ms 256 KB
01.txt WA 8 ms 4480 KB
02.txt AC 6 ms 3328 KB
03.txt WA 1 ms 384 KB
04.txt WA 1 ms 256 KB
05.txt WA 11 ms 6272 KB
06.txt AC 10 ms 6272 KB
07.txt AC 3 ms 1280 KB
08.txt WA 3 ms 1408 KB
09.txt WA 1 ms 512 KB
10.txt WA 3 ms 1536 KB
11.txt WA 12 ms 7168 KB
12.txt WA 12 ms 7168 KB
13.txt WA 11 ms 6912 KB