ACM: Gym 101047M Removing coins in Kem Kadrãn - 暴力

Gym 101047M Removing coins in Kem Kadrãn

Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u

Practice

Description

standard input/output

Andréh and his friend Andréas are board-game aficionados. They know many of their friends would love to go on a trip to Phuket, Thailand, and so they want to challenge them at Kem Kradãn, a traditional Thai board game.

Kem Kradãn (?????????) has been played since the 2nd century AD. The game is played with N pieces where each piece has two faces, one of which is golden and the other is white. The game starts with all pieces arranged in a line on the board and they are numbered from 1 to N from left to right. When a piece numbered i has its golden face up, it can be removed from the board. When this is done, the pieces numbered i - 1 and i + 1 are flipped, if they‘re still there. The goal is to remove all game pieces.

Before challenging their friends, Andréh and Andréas want to make sure their initial configurations have a solution. To help them, given an initial configuration, you must determine if it is possible to remove all game pieces and, if so, you must show how to do it.

Input

The first line has a single integer T, the number of test cases.

Each test case is formed by a line containing an integer N, the number of pieces, followed by line containing a string of length Ncontaining only the letters B (white face up) and D (golden face up), representing the initial state of the game.

Limits

  • 1 ≤ T ≤ 100
  • 1 ≤ N ≤ 105
  • The sum of N over all test cases will not exceed 5·105

Output

For each test case, print a line containing Y if it is possible to remove every piece from the board, or N otherwise. In case it is possible to remove all the pieces, you should also print on the next line a sequence of N integers each representing a piece number, indicating the order in which the pieces must be removed. If there is more than one possible sequence, you can print any of them.

Sample Input

Input

43BDB5DBDDB5DDBDD6DBBBBB

Output

Y2 3 1Y4 5 1 2 3NY1 2 3 4 5 6
/*/
题意:
在一段字符里面有两种字符D和B,字符串中D可以直接拿掉,但是D两边的都要进行反转,B->D , D->B ,问能不能把所有的字符全部拿掉。

如果可以输出Y并且打印拿的过程。

如果不能就输出N。
暴力扫描,如果找到一个D那么从D开始往前面去拿掉字符串,如果前面的不能被拿掉,那么肯定这个字符串是不能被拿掉的。
举个栗子:

AC代码:
/*/
#include"algorithm"
#include"iostream"
#include"cstring"
#include"cstdio"
using namespace std;

int main() {
	int T,n;
	int ans[111111],light[111111];
	char s[111111];
	cin>>T;
	while(T--) {
		memset(s,0,sizeof(s));
		memset(ans,0,sizeof(ans));
		memset(light,0,sizeof(light));
		cin>>n;
		scanf("%s",s+1);
		for(int i=1; i<=n; i++) {
			if(s[i]==‘B‘)light[i]=2;
			else light[i]=1;
		}
		int j;
		int erear=0;
		for(int i=1; i<=n; i++) {
			j=i;
			while(light[j]==1) {
				if(j<=0)break;
				if(j> n)break;
				light[j]=0;
				ans[erear++]=j;
				if(light[j-1]==2)light[j-1]=1;
				else if(light[j-1]==1)light[j-1]=2;
				if(light[j+1]==2)light[j+1]=1;
				else if(light[j+1]==1)light[j+1]=2;
				j--;
			}
		}
		int t=1;
		if(erear==n) {
			puts("Y");
			for(int i=0; i<erear; i++) {
				if(t)t=0;
				else printf(" ");
				printf("%d",ans[i]);
			}
			puts("");
		} else puts("N");
	}
	return 0;
}

  

 
时间: 2024-11-05 22:43:27

ACM: Gym 101047M Removing coins in Kem Kadrãn - 暴力的相关文章

CodeForces Gym 101047M Removing coins in Kem Kadr&#227;n 暴力

Removing coins in Kem Kadrãn Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Gym 101047M Description standard input/output Andréh and his friend Andréas are board-game aficionados. They know many of their friends would lo

Gym 101047M Removing coins in Kem Kadr&#227;n

给定一个序列,只能拿走D,隔壁的会翻转,问能否全部拿走. 注意到如果能拿走的话,拿D的顺序是没关系的.模拟即可 #include <cstdio> #include <cstdlib> #include <cstring> #include <cmath> #include <algorithm> using namespace std; #define inf (0x3f3f3f3f) typedef long long int LL; #in

ACM: Gym 101047K Training with Phuket&#39;s larvae - 思维题

Gym 101047K Training with Phuket's larvae Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Practice Description standard input/output Thai cuisine is known for combining seasonings so that every dish has flavors that are s

[ACM] POJ 2000 Gold Coins

Gold Coins Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 20913   Accepted: 13098 Description The king pays his loyal knight in gold coins. On the first day of his service, the knight receives one gold coin. On each of the next two days

ACM: Gym 100935F A Poet Computer - 字典树

Gym 100935F A Poet Computer Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Description standard input/output The ACM team is working on an AI project called (Eih Eye Three) that allows computers to write poems. One of th

ACM: Gym 100935B Weird Cryptography - 简单的字符串处理

Weird Cryptography Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Gym 100935B Description standard input/output Khaled was sitting in the garden under an apple tree, suddenly! , well... you should guess what happened, an

ACM: Gym 100935G Board Game - DFS暴力搜索

Board Game Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Gym 100935G Description standard input/outputStatements Feras bought to his nephew Saleem a new game to help him learning calculating. The game consists of a boar

ACM: Gym 101047B Renzo and the palindromic decoration - 手速题

Gym 101047B  Renzo and the palindromic decoration Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Practice Description standard input/output At the ruins of Wat Phra Si Sanphet (??????????????), one can find famous inscri

ACM: Gym 101047E Escape from Ayutthaya - BFS

Gym 101047E Escape from Ayutthaya Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Practice Description standard input/output Ayutthaya was one of the first kingdoms in Thailand, spanning since its foundation in 1350 to it