比赛 |
NOIP模拟赛1 |
评测结果 |
WWEEEEEEEE |
题目名称 |
异或 |
最终得分 |
0 |
用户昵称 |
LYN-- |
运行时间 |
0.949 s |
代码语言 |
C++ |
内存使用 |
0.97 MiB |
提交时间 |
2018-02-08 21:08:45 |
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
long long shu[100001];
int main()
{
freopen("xorxor.in","r",stdin);
freopen("xorxor.out","w",stdout);
int n,k,a,j,m,i;
m=0;
cin>>n>>k;
int nm[n+1];
memset(nm,0,sizeof(nm));
for(i=1;i<=n;i++)
{
j=1;
cin>>a;
if(a>=2)
{
do
{
nm[i]=nm[i]+a%2*j;
a=a/2;
j=j*10;
}while(a>=2);
nm[i]=nm[i]+j;
}
else
{
if(a==1)
nm[i]=1;
if(a==0)
nm[i]=0;
}
//cout<<nm[i]<<endl;
}
for(i=1;i<n;i++)
for(j=i+1;j<=n;j++)
{
m++;
if(nm[i]>nm[j])
{
if(nm[i]%10==1&&nm[j]%10==1)
shu[m]=nm[i]-nm[j];
else
shu[m]=nm[i]+nm[j];
}
else
{
if(nm[i]%10==1&&nm[j]%10==1)
shu[m]=nm[j]-nm[i];
else
shu[m]=nm[i]+nm[j];
}
//cout<<shu[m]<<endl;
}
for(i=1;i<n;i++)
for(j=1;j<n;j++)
{
if(shu[j]>shu[j+1])
{
a=shu[j];
shu[j]=shu[j+1];
shu[j+1]=a;
}
}
a=shu[k];
shu[k]=0;
do
{
i=a%10;
if(i==1)
shu[k]=i*2+shu[k];
else
shu[k]=shu[k]+1;
a=a/10;
}while(a!=0);
cout<<shu[k];
}