0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ABC042 ARC058 の問題を解いてみました

Last updated at Posted at 2023-12-29

A問題

整数$A,B,C$ を並べ替えて五七五にできるというのは、整数$A,B,C$ のうち2つが5 で,1つが 7 ということなので、その条件を満たしているかを判定すればよいです。

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

int main() {
	int A, B, C;
	cin >> A >> B >> C;
	int five = 0, seven = 0;
	if (A == 5) five++;
	if (A == 7) seven++;
	if (B == 5) five++;
	if (B == 7) seven++;
	if (C == 5) five++;
	if (C == 7) seven++;
	
	if (five == 2 && seven == 1) {
		printf("YES");
	}
	else {
		printf("NO");
	}
	
	return 0;
}
他の解答例
#include <bits/stdc++.h>
using namespace std;
//Created by karaju

int main() {
	int ABC[3];
	cin >> ABC[0] >> ABC[1] >> ABC[2];
	sort(ABC, ABC + 3);
	if (ABC[0] == 5 && ABC[1] == 5 && ABC[2] == 7) printf("YES");
	else printf("NO");
}

B問題

長さ$L$の文字列が$N$個与えられるので、それらを辞書順に並び替えて結合してください。 という問題です。
文字列を辞書順に並び替えるには、ソートを使えば良いです。
文字列を$N$個含んだ配列を作成して、その配列をソートしましょう。

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

int main() {
	int N, L;
	cin >> N >> L;
	string words[N];
	for (int i = 0; i < N; i++)  cin >> words[i];
	sort(words, words + N);
	for (int i = 0; i < N; i++) cout << words[i];
	
	return 0;
}

C問題

$N$円の品物を購入する 嫌いな数字が含まれない 最小金額を求める問題です。
嫌いな数字は$K$個あり、$D_1,D_2,...,D_k$ です。

嫌いな数字が含まれていたら、その金額に1円足した金額について確かめるという方法で $N$ から嫌いな数字を取り除くことができます。
嫌いな数字が含まれているかを確かめるには、一の桁が嫌いな数字かどうかを確かめて、(10で割ったあまり)、その数を10で割って切り捨てる ということを繰り返すという方法があります。

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

int main() {
	int n, k;
	cin >> n >> k;
	int li[10];
	for (int i = 0; i < k; i++) {
		int d;
		cin >> d;
		li[d]++;
		//配列の嫌いな数字番目を1にする
	}
	int x; //xの値を1ずつ増やしていく
    bool ok;
	
	for (int i = n; true; i++) {
		x = i;
		ok = true;
		while (x) { //xが0になるまで
			//一桁ずつ嫌いな数字かどうか確かめる
			if (li[x % 10] == 1) {
				ok = false;
				break;
			}
			x /= 10;
			//一の位を削ぎ落としていく
		}
		if (ok) { //嫌いな数字が含まれていないなら
			cout << i << endl;
			return 0;
		}
	}
	
	return 0;
}

D

あとで

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?