結果
| 問題 |
No.2853 A + B Problem
|
| コンテスト | |
| ユーザー |
nekoti
|
| 提出日時 | 2024-08-25 15:56:39 |
| 言語 | C (gcc 13.3.0) |
| 結果 |
AC
|
| 実行時間 | 1 ms / 2,000 ms |
| コード長 | 844 bytes |
| コンパイル時間 | 408 ms |
| コンパイル使用メモリ | 30,208 KB |
| 実行使用メモリ | 6,944 KB |
| 最終ジャッジ日時 | 2024-08-25 15:56:41 |
| 合計ジャッジ時間 | 1,626 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 30 |
ソースコード
#define _DEBUG 0
#include<stdio.h>
#include<stdbool.h>
#include<string.h>
#include<stdlib.h>
int main(void)
{
int scan;//scanf警告用
int i,j;
long long n;scan=scanf("%lld",&n);
int bitcount=0;
long long bit=n;
while(bit)
{
if(bit%2)bitcount++;
bit>>=1;
}
#if _DEBUG
printf("bitcount = %d\n\n",bitcount);
#endif
long long nn=bitcount;
long long rr;
long long sum=0;
long long nCr;
for(i=1; i<=nn/2; i++)
{
//
nCr=1;
rr=nn-i;
//
long long loop;
for(loop=1;loop<=rr;loop++)
{
nCr = nCr*(nn-loop+1)/loop;
}
//
if(i==bitcount-i);
else nCr*=2;
//
sum+=nCr;
#if _DEBUG
printf("i=%d, nn=%lld, r=%lld\n",i,nn,rr);
printf("%dC%d=%lld\n",nn,rr,nCr);
printf("sum=%lld\n\n",sum);
#endif
}
printf("%lld",sum);
return 0;
}
nekoti