比赛 |
20140713下午练习 |
评测结果 |
AAAAAAAAAA |
题目名称 |
海明码 |
最终得分 |
100 |
用户昵称 |
Satoshi |
运行时间 |
0.006 s |
代码语言 |
C++ |
内存使用 |
0.28 MiB |
提交时间 |
2014-07-13 16:42:04 |
显示代码纯文本
#include <fstream>
using namespace std;
ifstream in("hamming.in");
ofstream out("hamming.out");
int n,b,d;
int mark(int i,int j)
{
int o[10]={0},p[10]={0},h,k,sum=0,w,pu,q;
q=i;
h=1;
while(i!=0)
{
o[h]=i%2;
i=i/2;
h++;
}
w=1;
while(j!=0)
{
p[w]=j%2;
j=j/2;
w++;
}
for(k=1;k<=h;k++)if(o[k]!=p[k])sum++;
if(sum>=d)return 1;
else return 0;
}
int main()
{
int s,k,k1,i,j,a[101]={0},m; bool tuo=true,tuo2=true;
s=1;
k1=1;
k=0;
in>>n>>b>>d;
for(i=1;i<=b;i++)
{
k+=k1;
k1*=2;
}
a[1]=0;
out<<a[1]<<' ';
while(s<n)
{
for(i=a[s]+1;i<=k;i++)
{
tuo=true;
for(j=1;j<=s;j++)
{
if(mark(i,a[j])==0)
{
tuo=false;
break;
}
}
if(tuo)
{
s++;
a[s]=i;
if(s==n)break;
}
}
}
for(i=2;i<=n;i++)out<<a[i]<<' ';
out<<endl;
in.close();
out.close();
return 0;
}