AtCoder

ABC055 C問題(Scc Puzzle)を解く

AtCoder_ABC055_C

AtCoder が提供しているABC(AtCoder Beginner Contest)055 C問題をC++で解いてみました。ABC055は、2017年2月18日21:00に実施されました。

AtCoder の紹介はこちらに、プログラミングの方針はこちらに記事があります。

C問題 Scc Puzzle(Difficulty : 561)

問題の詳細は、リンク先をご覧ください。

ABC055 C問題 Scc Puzzle

S型ピースとc型ピースの比率で場合分けします。AtCoder Problems による Difficulty は 561 でした。

解答案

C++ プログラム例(ABC055C)

S型ピースの個数がc型ピースの個数の半分より多ければ、c型ピースを使いきります(S型ピースは余ります)。もしc型ピースの個数がS型ピースの個数の2倍より多ければ、余ったc型ピース4個につきSccの文字がひとつ作れます。

以下が、C++プログラムです。

#include <bits/stdc++.h>
using namespace std;

typedef unsigned long long int ull;

int main()
{
	ull n, m;
	cin >> n >> m;

	ull result = 0;
	if (n > m / 2) {
		result = m / 2;
	} else {
		ull temp = m - 2 * n;
		result = n;
		result += temp / 4;
	}

	cout << result << endl;

	return 0;
}

AC(Accepted=正しいプログラム)と判定されました。

最後に

特定のアルゴリズムを使うわけではなく、状況を整理すれば解ける問題でした。

引き続き ABC の問題を紹介していきます。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA