0%

UVA13091 no-ball 题解

题目简介

  • 判断脚 (“ > “或” < “) 是否越界 (” | “)。
  • 脚有两种可能,正常 (” > “) 或颠倒 (” < “)。

    题目分析

  • 是否颠倒看脚的方向,再看脚的方向决定是否出界。
  • 只有界限的位置和脚的位置是我们要注意的,其它的可以不考虑。
  • 如果不颠倒,脚在球的左边 输出Thik Ball,反之
    输出No Ball
  • 颠倒时判断条件相反即可。

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include<iostream>
using namespace std;
int n,foot,jiexian,flag;
/*
foot:脚的位置
jiexian:界限位置
flag:照片是否被翻转*/
int main(){
cin>>n;//多组数据
for(int q=1;q<=n;q++){
char ch;
foot=0;
jiexian=0;
flag=0;//清空变量(多组数据必备技能)
for (int i = 1; i <= 5; i++)
for (int j = 1; j <= 5; j++){
cin>>ch;//读入(模拟读入矩阵)
if(ch =='|') jiexian=j;//记录界限位置
else if(ch=='<')flag=1,foot=j; //记录脚所处的位置
else if(ch=='>')flag=0,foot=j; //记录是否翻转
}
//往下是输出
cout << "Case "<<q<<": ";
if ((flag&&foot<=jiexian)||(flag&&foot<jiexian)) cout << "No Ball\n";
else cout << "Thik Ball\n"; // 判定(原理上文讲了)
}
return 0;
}