題目連結:
http://codeforces.com/problemset/problem/725/A
題解:
題目大意:
給你n個保險杆(能夠控制球的方向),>表示球向右移動一個機關,<表示球向左移動一個機關,問你球在那幾個位置的時候可以出去,不會陷入循環。
簡單的水題,先記錄一下能夠左移的球,一旦遇到不能左移,就直接将整個停止,在記錄一下右移的球,一旦不能右移,在直接停掉。最後,看兩個數組中能夠移動的球的總的數目。
代碼:
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
#define met(a,b) memset(a,b,sizeof(a))
#define inf 0x3f3f3f3f
const int maxn = *+;
bool l[maxn],r[maxn];
char s[maxn];
int main()
{
int n;
scanf("%d",&n);
scanf("%s",s);
met(l,false);
met(r,false);
for(int i=;i<n;i++)
{
if(s[i]=='<')
l[i]=true;
else
break;
}
for(int i=n-;i>=;i--)
{
if(s[i]=='>')
r[i]=true;
else
break;
}
int cnt=;
for(int i=;i<n;i++)
{
if(l[i]==true||r[i]==true)
cnt++;
}
printf("%d\n",cnt);
}