結果
問題 |
No.634 硬貨の枚数1
|
ユーザー |
![]() |
提出日時 | 2018-02-01 22:37:45 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,546 bytes |
コンパイル時間 | 1,640 ms |
コンパイル使用メモリ | 161,324 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-12-30 02:05:28 |
合計ジャッジ時間 | 14,734 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 74 WA * 1 |
ソースコード
#include <bits/stdc++.h> #include "bits/stdc++.h" #include <iostream> #include <iomanip> #include <vector> #include <algorithm> #include <string> #include <sstream> #include <cmath> #include <stack> #include <queue> #include <cctype> #include <stdio.h> #include <map> #include <unordered_map> #include <string.h> #include <utility> typedef long long ll; #define rep(i,n) for(ll i=0;i<(ll)(n);i++) using namespace std; typedef pair<int, int> P; vector<ll> coins; int main() { int n = 0; cin >> n; int k = 1; int goukei = 1; while (goukei <= n) { coins.push_back(goukei); k++; goukei = k * (k + 1) / 2; } /* for(int i=0; i<coins.size(); i++){ cout<<coins[i]<<endl; } cout<<endl;*/ int a = 100000000; for (int i = coins.size() - 1; i >= 0; i--) { int sum = n; int ans = 0; /* cout<<sum-coins[i]<<endl;*/ /* return 0;*/ ans = sum / coins[i]; sum = sum % coins[i]; /* int ss = lower_bound(coins.begin(),coins.end(),sum)-coins.begin();*/ for (int j = upper_bound(coins.begin(),coins.end(),sum)-coins.begin(); j >= 0; j--) { /* cout<<coins[j]<<endl;*/ if (sum / coins[j] != 0) { ans = ans + (sum / coins[j]); sum = sum % coins[j]; /* cout<<coins[j]<<endl; */ /*cout<<ans<<" "<<sum<<endl;*/ } for (int k = upper_bound(coins.begin(),coins.end(),sum)-coins.begin(); k >= 0; k--) { if (sum / coins[k] != 0) { ans = ans + (sum / coins[k]); sum = sum % coins[k]; } } } /* cout<<endl;*/ a = min(a, ans); } cout << a << endl; }