Codeforces Beta Round #96 (Div. 2)

http://codeforces.com/contest/133

悲剧啊。。又掉了rating。。越做越往下衰了啊。。呜呜。。看着队友们都三道题而且A的时间还很早。自己感觉到了很大的压力,总之要努力啊。。加油。。。

A: http://codeforces.com/contest/133/problem/A

You have to figure out whether executing this program will produce any output.

人家明明说了是否处理输出,自己还尝试各种情况,结果wa三次才过。

B:http://codeforces.com/contest/133/problem/B

就是一个由二进制数向十进制转化的题目,处理符号是注意倒着存储,还有开始做的时候我直接想到了原来做过的一道阶乘和取余的题目傻傻的以为只要大于100003就舍去了,笨啊。卡了很长时间。直接暴力(用模运算公式)。(快速幂取模好像也能过、)

View Code
#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std;
const int max_s = 107;
char a[max_s];
int add(int n)
{
int res=1;
for(int i=1;i<=n;i++)
{
res*=2;
res%=1000003;
}
return res;
}
int main()
{
gets(a);
int len=strlen(a);
int s[10000];
int k=0;
for(int i=len-1;i>=0;i--)
{
if(a[i]=='>')
{
s[k++]=0;
s[k++]=0;
s[k++]=0;
s[k++]=1;
}
if(a[i]=='<')
{
s[k++]=1;
s[k++]=0;
s[k++]=0;
s[k++]=1;
}
if(a[i]=='+')
{
s[k++]=0;
s[k++]=1;
s[k++]=0;
s[k++]=1;
}
if(a[i]=='-')
{
s[k++]=1;
s[k++]=1;
s[k++]=0;
s[k++]=1;
}
if(a[i]=='.')
{
s[k++]=0;
s[k++]=0;
s[k++]=1;
s[k++]=1;
}
if(a[i]==',')
{
s[k++]=1;
s[k++]=0;
s[k++]=1;
s[k++]=1;
}
if(a[i]=='[')
{
s[k++]=0;
s[k++]=1;
s[k++]=1;
s[k++]=1;
}
if(a[i]==']')
{
s[k++]=1;
s[k++]=1;
s[k++]=1;
s[k++]=1;
}
}
int ans=0;
for(int i=0;i<k;i++)
{
if(s[i])
{
ans+=add(i);
ans%=1000003;
}
}
printf("%d\n",ans);
return 0;
}



你可能感兴趣的:(codeforces)