結果
問題 | No.129 お年玉(2) |
ユーザー |
|
提出日時 | 2018-07-05 15:11:58 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 92 ms / 5,000 ms |
コード長 | 1,282 bytes |
コンパイル時間 | 727 ms |
コンパイル使用メモリ | 62,296 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-11-28 01:06:04 |
合計ジャッジ時間 | 2,672 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 46 |
ソースコード
#include <iostream>#include <vector>#define REP(i,a,b) for(int i=(a); i<(b); i++)#define RREP(i,a,b) for(int i=(a); i>(b); i--)#define ll long long intusing namespace std;int main(){ll n;cin >> n;n /= 1000;int m;cin >> m;int amari = n % m;// (m)人から(amari)を選ぶ選び方が答え。m C amariを計算するamari = min(amari, m - amari);// m C amariの計算における分子int bunshi[amari];REP(i, 0, amari){bunshi[i] = m - i;}// m C amariの計算における分母vector<int> bunbo;for (int i = 2; i <= amari; i++){int i_copy = i;int j = 2;while (j <= i){if (i_copy == 1) break;if (i_copy % j == 0){i_copy /= j;bunbo.push_back(j);} else {j += 1;}}}int bunbo_size = bunbo.size();REP(i, 0, bunbo_size){int j = bunbo[i];REP(i, 0, amari){if (bunshi[i] % j == 0){bunshi[i] = bunshi[i] / j;break;}}}ll ans = 1;REP(i, 0, amari){ans *= bunshi[i];ans %= 1000000000;}cout << ans << endl;return 0;}