uva 11586 - Train Tracks(水题)

Problem J: Train Tracks

Some wooden pieces

Andy loves his set of wooden trains and railroad tracks. Each day, Daddy has to build a new track for him.The tracks he likes best form a simple loop with no branches or dead ends,so he can run his trains around and around for hours until it is time forthe big crash that destroys the whole construction.

So here is the question: Given a set of track pieces, can you form a simple loop with them,while using up all the pieces?

Each piece of track is described by the connectors at both ends. A standard piece has one "male" and one "female" connector. But there are also track pieces with two male or two female connectors, as shown in the front right of the picture.

To fit together, each male connector must be connected to a female connector. Unlike real wooden tracks, our pieces are assumed to be flexible, so their length or shape is not an issue here.However, you may not connect the two ends of the same piece together.

Input begins with the number of test cases.Each following line contains one test case. Each test case consists of a list of between 1 and 50 (inclusive) train track pieces.A piece is described by two code letters: M for male or F for female connector.Pieces are separated by space characters.

For each test case, output a line containing either LOOP or NO LOOPto indicate whether or not all the pieces can be joined into a single loop.

Sample input

4
MF MF
FM FF MF MM
MM FF
MF MF MF MF FF

Sample output

LOOP
LOOP
LOOP
NO LOOP

#include <iostream>
#include <cstdio>
#include <sstream>
using namespace std;

int M , F;
string str;

void readcase(){
	M = 0;
	F = 0;
	getline(cin , str);
	for(int i = 0;i < str.length();i++){
		if(str[i] == 'M') M++;
		if(str[i] == 'F') F++;
	}
}

void computing(){
	if(M != F || M+F == 2){
		printf("NO LOOP\n");
	}else{
		printf("LOOP\n");
	}
}

int main(){
	freopen("in" , "r" , stdin);
	int n;
	cin >> n;
	getchar();
	while(n--){
		readcase();
		computing();
	}
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值