AtCoder Beginner Contest 123 B,C問題
とりあえずA~Cを確実に解けるとこまでいきたい
【B】Five Dishes
#include <bits/stdc++.h> using namespace std; int cu(int x){ x = ((x + 9)/ 10) * 10; // 下一桁を繰り上げる関数 return x; } int main() { vector<int> v(5); for (int i = 0; i < 5; i++){ cin >> v.at(i); } int sum = 0; for (int i = 0; i < 5; i++){ sum += cu(v.at(i)); } int last = 0; for (int i = 0; i < 5; i++){ int amari = v.at(i) % 10; int amari_r = 10 - amari; if(last < amari_r && amari_r != 10){ last = amari_r; } } cout << sum - last << endl; }
指針が作りにくかった。全部合計してから少し差し引くという思考をしっかり備えなければ…
【C】Five Transportations
#include <bits/stdc++.h> using namespace std; int main() { long long N,a,b,c,d,e; cin >> N >> a >> b >> c >> d >> e; long long m = min(a,b); m = min(m,c); m = min(m,d); m = min(m,e); long long count = 0; if(N % m == 0){ count = 4 + (N / m);} else { count = 5 + (N / m);} cout << count << endl; }
解法の指針は分かってたのに、最後のif文に辿り着くのに1時間半掛かった…。
ドツボにはまってしまった 理解すれば簡単な話なのに