记录编号 |
137463 |
评测结果 |
AAAAAAAAAA |
题目名称 |
[RQNOJ 165] FBI序列 |
最终得分 |
100 |
用户昵称 |
Vincent |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.002 s |
提交时间 |
2014-11-04 20:24:30 |
内存使用 |
0.27 MiB |
显示代码纯文本
#include <cstdio>
#include <cstring>
#define MAXN 2010
#define lowbit(x) (x&(-x))
#define F 0
#define B 1
using namespace std;
int a[2][MAXN]={0},n,ans=0;
char s[MAXN];
int sum(int x,int i){
int ret=0;
while (x>0){
ret += a[i][x];
x -= lowbit(x);
}
return ret;
}
void add(int x,int d,int i){
while (x<=n){
a[i][x]+=d;
x += lowbit(x);
}
}
int main(){
freopen("fbi.in","r",stdin);
freopen("fbi.out","w",stdout);
memset(s,0,sizeof(s));
scanf ("%s",s+1);
n=strlen(s+1);
for (int i=1; i<=n; i++){
if ( s[i]=='F' )
add(i,1,F);
else if ( s[i]=='B' )
add(i,sum(i-1,F),B);
else if ( s[i]=='I' ){
ans += sum(i-1,B);
}
}
printf("%d\n",ans);
return 0;
}