比赛 |
20140713上午练习 |
评测结果 |
AAAAWWWWWW |
题目名称 |
A类B类数 |
最终得分 |
40 |
用户昵称 |
Ra-xp |
运行时间 |
0.990 s |
代码语言 |
C++ |
内存使用 |
0.31 MiB |
提交时间 |
2014-07-13 10:19:18 |
显示代码纯文本
#include<iostream>
#include<fstream>
#include<vector>
#include<string>
#define MAXN 1000
using namespace std;
/*
注意:全加括号,以防算错!
按位与 & 3 全一则一,否则为零
按位或 | 3 有一则一,否则为零
按位取反 ~ 1 不同则一,相同则零
按位异或 ^ 3
左移位 << 2 等价于x*2的k次幂
右移位 >> 2 等价于x/2的k次幂(取整)
freopen("","r",stdin);
freopen("","w",stdout);
位运算需用unsighed short(int)无符号的短整型(整型)。*/
int main()
{
freopen("abnum.in","r",stdin);
freopen("abnum.out","w",stdout);
int i, j, n, k, l, m, a=0, b=0;
unsigned short work;
cin>>n;
for(i=1,k=0,l=0,m=0;i<=n;i++)
{
work=i;
for(j=0;work!=0;j++)
{
work=work&(work-1);
}
k=j;
work=i;
for(j=0;work!=0;j++)
{
work=work>>1;
}
l=j;
if(l-k<k)
{
a++;
}
else b++;
}
cout<<a<<' '<<b<<endl;
return 0;
}