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 (0 \leq K < 10$)個あり、$D_1,D_2,...,D_K$ です。
嫌いな数字が含まれていたら、その金額に1円足した金額について確かめるという方法で $N$ から嫌いな数字を取り除くことができます。
#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
あとで
