結果
問題 |
No.634 硬貨の枚数1
|
ユーザー |
![]() |
提出日時 | 2018-02-01 22:31:31 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
TLE
|
実行時間 | - |
コード長 | 1,386 bytes |
コンパイル時間 | 1,407 ms |
コンパイル使用メモリ | 160,712 KB |
実行使用メモリ | 17,088 KB |
最終ジャッジ日時 | 2024-12-30 02:01:41 |
合計ジャッジ時間 | 144,216 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 27 WA * 1 TLE * 47 |
ソースコード
#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 x = ans; for (int j = i - 1; 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 = j - 1; 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; }