tjut 3474
来源:互联网 发布:mac ssh客户端工具 编辑:程序博客网 时间:2024/06/10 22:31
#include <cstdio> #include <cmath> #include <cstring> #define MAXN 1000005 #define min(a, b) ((a)<=(b)?(a):(b)) using namespace std; int num[MAXN]; char ans[MAXN]; char s[MAXN]; int l[MAXN]; int r[MAXN]; void initx(int n) { l[1] = num[1]; for (int i = 2; i <= n; i++) l[i] = min(l[i - 1], num[i]); r[n] = num[n]; for (int i = n - 1; i >= 1; i--) r[i] = min(r[i + 1], num[i]); } int main() { int t; int ANS; int lenx; scanf("%d", &t); for (int k = 0; k < t; k++) { scanf("%s", s); lenx = strlen(s); memset(ans, 0, sizeof(ans)); ANS = 0; num[0] = 0; for (int i = 0; i < lenx; i++) { if (s[i] == 'C') num[i + 1] = num[i] + 1; else num[i + 1] = num[i] - 1; } initx(lenx); if (l[lenx] >= 0) ans[0] = 1; for (int i = 1; i < lenx; i++) { if (r[i + 1] - num[i] >= 0 && num[lenx] - num [i] + l[i] >= 0) ans[i] = 1; } for (int i = 0; i < lenx; i++) { if (s[lenx - i - 1] == 'C') num[i + 1] = num[i] + 1; else num[i + 1] = num[i] - 1; } initx(lenx); if (l[lenx] >= 0) ans[0] = 1; for (int i = 1; i < lenx; i++) { if (r[i + 1] - num[i] >= 0 && num[lenx] - num [i] + l[i] >= 0) ans[lenx - i] = 1; } for (int i = 0; i < lenx; i++) if (ans[i] == 1) ANS++; printf("Case %d: %d\n", k + 1, ANS); } return 0; }
0 0
- tjut 3474
- tjut 5289
- tjut 5288
- tjut 5294
- tjut 2586
- tjut 5296
- tjut 5297
- tjut 5299
- tjut 5384
- tjut 5387
- tjut 5386
- tjut 5381
- tjut 5400
- tjut 5399
- tjut 5396
- tjut 5398
- tjut 5412
- tjut 5410
- List-ConvertView原理
- MyBatis中select条件配置
- CSS3 新特性实例
- intent.setFlags方法中的参数值含义
- Python为什么要self
- tjut 3474
- X.utiles框架的使用简介
- Android N 行为变更
- 解决使用BottomSheetDialog时状态栏变黑的问题
- 指北针设置
- Spring MVC自定义错误页面
- .Net语言 APP开发平台——Smobiler学习日志:如何在手机上实现条形图的展示
- html5获取地理位置 利用百度地图JavaScript API标注
- 使用Xcode和Instruments调试解决iOS内存泄露