设为首页 加入收藏

TOP

HDU 4891 The Great Pan (模拟)(二)
2015-07-20 18:02:22 来源: 作者: 【 】 浏览:10
Tags:HDU 4891 The Great Pan 模拟
mail.com > Created Time: 2014年07月29日 星期二 16时42分00秒 ************************************************************************/ #include #include using namespace std; #define N 3050000 char str[N]; int main(int argc, char *argv[]) { freopen("in.txt", "r", stdin); int n, len, i, j, flagk, flag$, doge; long long space, ans, tmp1, tmp2; char nowk; while(scanf("%d", &n) != EOF) { ans = 1; tmp1 = 1; // 竖杠数 tmp2 = 1; // 每段$$中的空格总乘积 space = 1; // 每小段空格数 flagk = flag$ = 0; // 是否有"{"或"$" doge = 0; getchar(); for (i = 0; i < n; ++i) { gets(str); len = strlen(str); if(doge) continue; for (j = 0; j < len; ++j) { if(str[j] == '{') { flagk = 1; } else if(str[j] == '}') { ans = ans * tmp1; tmp1 = 1; flagk = 0; } else if(str[j] == '$') { if(flag$ == 0) { flag$ = 1; } else { if(nowk == ' ') { tmp2 = tmp2 * space; if(tmp2 > 100000) tmp2 = 100001; ///// } ans = ans * tmp2; tmp2 = 1; space = 1; flag$ = 0; } } else { if(flagk) { if(str[j] == '|') { tmp1 ++; } } if(flag$) { if(str[j] == ' ') { space ++; } else { tmp2 = tmp2 * space; if(tmp2 > 100000) tmp2 = 100001; ///// space = 1; } } } if(ans > 100000) doge = 1; nowk = str[j]; } } if(doge) { printf("doge\n"); } else { printf("%I64d\n", ans); } } return 0; }

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇UVA 11992 - Fast Matrix Operati.. 下一篇C++MFC编程笔记day04 运行时类信..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: