国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

AtCoder Regular Contest 069 D

2019-11-08 01:53:59
字體:
來源:轉載
供稿:網友

D - Menagerie Time limit : 2sec / Memory limit : 256MB

Score : 500 points

PRoblem Statement Snuke, who loves animals, built a zoo.

There are N animals in this zoo. They are conveniently numbered 1 through N, and arranged in a circle. The animal numbered i(2≤i≤N?1) is adjacent to the animals numbered i?1 and i+1. Also, the animal numbered 1 is adjacent to the animals numbered 2 and N, and the animal numbered N is adjacent to the animals numbered N?1 and 1.

There are two kinds of animals in this zoo: honest sheep that only speak the truth, and lying wolves that only tell lies.

Snuke cannot tell the difference between these two species, and asked each animal the following question: “Are your neighbors of the same species?” The animal numbered i answered si. Here, if si is o, the animal said that the two neighboring animals are of the same species, and if si is x, the animal said that the two neighboring animals are of different species.

More formally, a sheep answered o if the two neighboring animals are both sheep or both wolves, and answered x otherwise. Similarly, a wolf answered x if the two neighboring animals are both sheep or both wolves, and answered o otherwise.

Snuke is wondering whether there is a valid assignment of species to the animals that is consistent with these responses. If there is such an assignment, show one such assignment. Otherwise, print -1.

Constraints 3≤N≤105 s is a string of length N consisting of o and x. Input The input is given from Standard Input in the following format:

N s Output If there does not exist an valid assignment that is consistent with s, print -1. Otherwise, print an string t in the following format. The output is considered correct if the assignment described by t is consistent with s.

t is a string of length N consisting of S and W. If ti is S, it indicates that the animal numbered i is a sheep. If ti is W, it indicates that the animal numbered i is a wolf. Sample Input 1 Copy 6 ooxoox Sample Output 1 Copy SSSWWS For example, if the animals numbered 1, 2, 3, 4, 5 and 6 are respectively a sheep, sheep, sheep, wolf, wolf, and sheep, it is consistent with their responses. Besides, there is another valid assignment of species: a wolf, sheep, wolf, sheep, wolf and wolf.

Let us remind you: if the neiboring animals are of the same species, a sheep answers o and a wolf answers x. If the neiboring animals are of different species, a sheep answers x and a wolf answers o.

b34c052fc21c42d2def9b98d6dccd05c.png Sample Input 2 Copy 3 oox Sample Output 2 Copy -1 Print -1 if there is no valid assignment of species.

Sample Input 3 Copy 10 oxooxoxoox Sample Output 3 Copy SSWWSSSWWS 大型模擬

#include <bits/stdc++.h>using namespace std;const int N=123456;int gh(char *str,char *ch,int n) { for(int i=1; i<n; i++) { if(i<n-2) { if(str[i]=='o') { if(ch[i]=='S') { ch[i+1]=ch[i-1]; } else { if(ch[i-1]=='S') ch[i+1]='W'; else ch[i+1]='S'; } } else { if(ch[i]=='S') { if(ch[i-1]=='S') ch[i+1]='W'; else ch[i+1]='S'; } else { ch[i+1]=ch[i-1]; } } } else if(i==n-2) { if(str[i]=='o') { if(ch[i]=='S') { if(ch[i+1]!=ch[i-1]) { return 1; } } else { if(ch[i+1]==ch[i-1]){ return 1; } } } else{ if(ch[i]=='S'){ if(ch[i+1]==ch[i-1]){ return 1; } } else{ if(ch[i+1]!=ch[i-1]) { return 1; } } } } else if(i==n-1){ if(str[i]=='x'){ if(ch[i]=='S') { if(ch[n-2]==ch[0]) return 1; } else{ if(ch[n-2]!=ch[0]) return 1; } } else{ if(ch[i]=='S'){ if(ch[n-2]!=ch[0]) return 1; } else{ if(ch[n-2]==ch[0]) return 1; } } } } return 0;}int main() { char str[N]; char ch[N]; int n; int flag=0; scanf("%d",&n); scanf("%s",str); ch[0]='S'; if(str[0]=='o') { memset(ch,0,sizeof(ch)); ch[0]='S'; ch[1]='S'; ch[n-1]='S'; flag=gh(str,ch,n); if(flag==0) { for(int i=0; i<n; i++) printf("%c",ch[i]); puts(""); return 0; } else { memset(ch,0,sizeof(ch)); ch[0]='S'; ch[1]='W'; ch[n-1]='W'; flag=gh(str,ch,n); if(flag==0){ for(int i=0;i<n;i++) printf("%c",ch[i]); puts(""); return 0; } } } else{ memset(ch,0,sizeof(ch)); ch[0]='S'; ch[1]='S'; ch[n-1]='W'; flag=gh(str,ch,n); if(flag==0){ for(int i=0;i<n;i++) printf("%c",ch[i]); puts(""); return 0; } else{ memset(ch,0,sizeof(ch)); ch[0]='S'; ch[1]='W'; ch[n-1]='S'; flag=gh(str,ch,n); if(flag==0){ for(int i=0;i<n;i++) printf("%c",ch[i]); puts(""); return 0; } } } ch[0]='W'; if(str[0]=='o'){ memset(ch,0,sizeof(ch)); ch[0]='W'; ch[1]='S'; ch[n-1]='W'; flag=gh(str,ch,n); if(flag==0){ for(int i=0;i<n;i++) printf("%c",ch[i]); puts(""); return 0; } else{ ch[0]='W'; ch[1]='W'; ch[n-1]='S'; flag=gh(str,ch,n); if(flag==0){ for(int i=0;i<n;i++) printf("%c",ch[i]); puts(""); return 0; } } } else{ memset(ch,0,sizeof(ch)); ch[0]='W'; ch[1]='S'; ch[n-1]='S'; flag=gh(str,ch,n); if(flag==0){ for(int i=0;i<n;i++) printf("%c",ch[i]); puts(""); } else{ ch[0]='W'; ch[1]='W'; ch[n-1]='W'; flag=gh(str,ch,n); if(flag==0){ for(int i=0;i<n;i++) printf("%c",ch[i]); puts(""); return 0; } } } puts("-1"); return 0;}
上一篇:PAT 1028

下一篇:抽象類和接口

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 东乌珠穆沁旗| 周至县| 德惠市| 肥乡县| 濮阳县| 漳浦县| 梨树县| 紫云| 浦北县| 阳信县| 青海省| 旬阳县| 固安县| 会昌县| 田东县| 平原县| 嘉兴市| 金门县| 新闻| 湖北省| 黑龙江省| 白山市| 丘北县| 香河县| 秦皇岛市| 城口县| 芦山县| 青浦区| 黄大仙区| 永吉县| 崇义县| 钟山县| 连平县| 巴林右旗| 莫力| 贵州省| 枣强县| 宜州市| 海林市| 社旗县| 卢湾区|