比赛 |
20140713上午练习 |
评测结果 |
WWWWWWWWWW |
题目名称 |
调试LED灯 |
最终得分 |
0 |
用户昵称 |
slyrabbit |
运行时间 |
0.004 s |
代码语言 |
C++ |
内存使用 |
0.31 MiB |
提交时间 |
2014-07-13 10:14:23 |
显示代码纯文本
#include<iostream>
#include<cstdio>
using namespace std;
unsigned int x,temp;
int l,n,s=0,ans[35];
unsigned int pow(int m,int p)
{
unsigned data=1;
for(int i=1;i<=p;i++)
{
data*=m;
}
return data;
}
void f(char a)
{
if(a=='a')
{
x|=pow(2,l)-1;
}
if(a=='b')
{
x=0;
}
if(a=='c')
{
x^=pow(2,l)-1;
}
if(a=='1')
{
for(unsigned int i=1;i<=l;i+=2)
{
x^=pow(2,i)-1;
x^=pow(2,i-1)-1;
}
}
if(a=='2')
{
for(unsigned int i=2;i<=l;i+=2)
{
x^=pow(2,i)-1;
x^=pow(2,i-1)-1;
}
}
if(a>'2'&&a<='9')
{
x|=pow(2,a-'0')-1;
temp=x;
x&=pow(2,l-(a-'0'))-1;
}
}
int main()
{
freopen("testled.in","r",stdin);
freopen("testled.out","w",stdout);
unsigned char a;
cin>>l>>temp>>n;
for(int i=0;i<=l-1;i++)
{
x+=(temp&1)*pow(2,i);
temp/=10;
}
for(int i=1;i<=n;i++)
{
cin>>a;
f(a);
}
temp=x;
for(int i=1;i<=l;i++)
{
if(temp&1==1)
s++;
temp>>=1;
}
cout<<s<<endl;
for(int i=l;i>=1;i--)
{
ans[i]=x&1;
x>>=1;
}
for(int i=1;i<=l;i++)
{
cout<<ans[i];
}
return 0;
}