比赛 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;
}