A問題
if文で、$b-a = c-b$ かどうかを判定しましょう。
#include <bits/stdc++.h>
using namespace std;
//Created by karaju.
int main(void){
int a, b, c;
cin >> a >> b >> c;
if(b - a == c - b){
cout << "YES" << endl;
}
else{
cout << "NO" << endl;
}
}
B問題
奇数番目の文字と、偶数番目の文字を交互に出力すれば良いです。
ただ、奇数番目の文字を集めた文字列の方が長い場合があるので、それに対応する必要があります。
#include <bits/stdc++.h>
using namespace std;
//Created by karaju.
int main(void){
string o, d;
cin >> o >> d;
for(int i = 0; i < o.size(); i++){
cout << o[i];
if(i >= d.size()) break; // o の方が長い場合を対処する
cout << d[i];
}
}
C問題
すべての文字列に含まれている文字を集めて出力します。
アルファベット26文字について、すべての文字列に含まれている個数だけその文字を出力することによって、この問題は解くことができます。
#include <bits/stdc++.h>
using namespace std;
//Created by karaju.
int main(void){
int n;
cin >> n;
string s[n];
for(int i = 0; i < n; i++) cin >> s[i];
//受け取り完了
for(char ch = 'a'; ch <= 'z'; ch++){ //すべての文字について試す
int ans = 1e9; //とりあえず大きい数にしておく
for(int i = 0; i < n; i++){
int sum = 0;
for(int j = 0; j < s[i].size(); j++){
if(s[i][j] == ch) sum++; //ch という文字が出てきた回数を記録する
}
if(ans > sum) ans = sum;
// すべての文字列に含まれている ch の数を記録しておく
}
for(int i = 0; i < ans; i++){
cout << ch; //最小の ch の数 回出力する
}
}
}
D問題