模拟题;
比赛的时候忘记把1变成64位的1了,跪了好久;
#include<cstdio>
#include<cstring>
#include<map>
#include<string>
using namespace std; unsigned long long val[];
int num[];
map<string,int>mp;
char s[];
char jkl[];
int main()
{
int d,b,v;
while(scanf("%d%d",&b,&v)!=EOF)
{
mp.clear();
for(int i=;i<v;i++)
{
val[i]=;
num[i]=;
}
for(int i=;i<v;i++)
{
scanf("%s",s);
scanf("%d",&d);
mp[s]=i;
num[i]=d;
}
gets(jkl);
int q;
char w;
for(int i=;i<v;i++)
{
unsigned long long tmp=;
for(int j=num[i]-;j>=;j--)
{
for(int k=b-;k>=;k--)
{
w=getchar();
if(w=='')
tmp+=((unsigned long long))<<(j*b+k);
}
gets(jkl);
}
val[i]=tmp;
}
scanf("%d",&q);
gets(jkl);
while(q--)
{
scanf("%s",s);
if(mp.find(s)==mp.end())printf("%s=\n",s);
else printf("%s=%llu\n",s,val[mp[s]]);
}
}
return ;
}