結果
| 問題 |
No.129 お年玉(2)
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2015-09-23 20:51:20 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
RE
|
| 実行時間 | - |
| コード長 | 1,213 bytes |
| コンパイル時間 | 455 ms |
| コンパイル使用メモリ | 66,992 KB |
| 実行使用メモリ | 6,948 KB |
| 最終ジャッジ日時 | 2024-07-19 08:52:29 |
| 合計ジャッジ時間 | 6,388 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 4 WA * 5 RE * 37 |
ソースコード
#include <iostream>
#include <vector>
#include <string>
#include <cstring>
#include <algorithm>
#include <sstream>
#include <map>
#include <set>
using namespace std;
#define REP(i,a,b) for(i=a;i<b;i++)
#define rep(i,n) REP(i,0,n)
typedef long long ll;
typedef unsigned long long ull;
typedef long double lb;
/* ここからが本編 */
#define NUM 1000000000
void kuriagari(ull com[],long j)
{
int tmp = com[j] / NUM;
com[j+1] += tmp;
com[j] -= tmp * NUM;
}
void combi(ull com[],ull n,ull r)
{
long i,j,k;
for(i=0;i<r;i++) {
for(j=100;j>-1;j--) {
com[j] *= n-i;
if(com[j] >= NUM) kuriagari(com,j);
}
}
for(i=0;i<r;i++) {
for(j=100;j>-1;j--) {
com[j] /= r-i;
if(com[j] >= NUM) kuriagari(com,j);
}
}
for(j=0;j<101;j++) {
if(com[j] >= NUM) kuriagari(com,j);
}
}
void dekaiprint(ull a[],ull num)
{
long i,j;
for(i=num-1;;i--) {
if(a[i]) {
printf("%llu",a[i]); break;
}
}
i--;
for(;i>-1;i--) printf("%0llu",a[i]);
printf("\n");
}
int main(void)
{
ull n,m;
ull com[101] = {1,0};
cin >> n >> m;
n /= 1000;
combi(com,m,n%m);
dekaiprint(com,101);
return 0;
}