UnKoder #04
GW最高。ってな訳でプロコン連日参加中。今回はUnKoder#04に参加して、19/36位でした。
Islands in Circle
とってもシンプルなコードになりました。
int main() { int N, K, result; cin >> N >> K; if(N % 2 == 1){ result = min(K + 1, N); }else{ result = min(K + 1, N / 2); } cout << result << endl; return 0; }
ただ、ここまでたどり着くのに一苦労。探索をして解きました。するとSegmentation Errorに。どうすればいいんだーと頭を抱えながら図を書いて規則性を探していると実は凄く分かりやすい規則性があることを発見してこうなりました。
Book Stacks
これはすぐに解けました。冊数の一番少ない山をまずは崩し、そこに読み終わった本を山積みしていくと操作回数が最小になります。
int main() { int N; cin >> N; int A[N], minA=100, total = 0; for(int i = 0; i < N; i++){ cin >> A[i]; minA = min(minA, A[i]); total += 2 * A[i] - 1; } total += minA - 1; cout << total << endl; return 0; }
この2問しか解けませんでした。後の2問にも挑戦してみたのですが、無理でした。