Submission #1255686


Source Code Expand

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define loop(i,a,b) for(i=a;i<b;i++)
#define rloop(i,a,b) for(i=a;i>=b;i--)
#define vi vector<int>
#define vl vector<ll>
#define vii vector< vector<int> >
#define vll vector< vector<ll> >
#define vs vector<string>
const int inf=1000000001;
const ll INF=1e16;
#define MOD 1000000007
#define mod 1000000009
#define pi 3.14159265358979323846

void fill(string &ans,string &s,int k);
bool check(string &ans,string &s,int k);

int main(){
	int n,i,j,k;
	cin>>n;
	string s;
	cin>>s;
	bool flag=false;
	string ans;
	loop(i,0,2){
		loop(j,0,2){
			ans.clear();
			if(i==0){
				ans+='S';
			}else{
				ans+='W';
			}
			if(j==0){
				ans+='S';
			}else{
				ans+='W';
			}
			loop(k,2,n){
				fill(ans,s,k);
			}
			flag=check(ans,s,n-1);
			if(flag){
				flag=check(ans,s,n);
			}
			if(flag){
				break;
			}
		}
		if(flag){
			break;
		}
	}
	if(!flag){
		cout<<-1<<endl;
	}else{
		loop(i,0,n){
			cout<<ans[i];
		}
		cout<<endl;
	}
}

void fill(string &ans,string &s,int k){
	if(s[k-1]=='o'){
		if(ans[k-1]=='S'){
			if(ans[k-2]=='S'){
				ans+='S';
			}else{
				ans+='W';
			}
		}else{
			if(ans[k-2]=='S'){
				ans+='W';
			}else{
				ans+='S';
			}
		}
	}else{
		if(ans[k-1]=='S'){
			if(ans[k-2]=='S'){
				ans+='W';
			}else{
				ans+='S';
			}
		}else{
			if(ans[k-2]=='S'){
				ans+='S';
			}else{
				ans+='W';
			}
		}
	}
}

bool check(string &ans,string &s,int k){
	int n=ans.size();
	if(s[k%n]=='o'){
		if(ans[k%n]=='S'){
			if(ans[(k-1)%n]==ans[(k+1)%n]){
				return true;
			}else{
				return false;
			}
		}else{
			if(ans[(k-1)%n]==ans[(k+1)%n]){
				return false;
			}else{
				return true;
			}
		}
	}else{
		if(ans[k%n]=='S'){
			if(ans[(k-1)%n]==ans[(k+1)%n]){
				return false;
			}else{
				return true;
			}
		}else{
			if(ans[(k-1)%n]==ans[(k+1)%n]){
				return true;
			}else{
				return false;
			}
		}
	}
}

Submission Info

Submission Time
Task D - Menagerie
User fuppy0716
Language C++14 (GCC 5.4.1)
Score 500
Code Size 2022 Byte
Status AC
Exec Time 13 ms
Memory 640 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 8 ms 512 KB
02.txt AC 5 ms 512 KB
03.txt AC 1 ms 256 KB
04.txt AC 1 ms 256 KB
05.txt AC 11 ms 640 KB
06.txt AC 8 ms 640 KB
07.txt AC 3 ms 256 KB
08.txt AC 3 ms 384 KB
09.txt AC 2 ms 256 KB
10.txt AC 3 ms 384 KB
11.txt AC 13 ms 640 KB
12.txt AC 13 ms 640 KB
13.txt AC 12 ms 640 KB