Official
A - 12435 Editorial
by
A - 12435 Editorial
by
sounansya
AtCoder をはじめたばかりで何をしたらよいか分からない方は、まずは practice contest の問題A「Welcome to AtCoder」を解いてみてください。基本的な入出力の方法が載っています。
また、プログラミングコンテストの問題に慣れていない方は、AtCoder Beginners Selection の問題をいくつか解いてみることをおすすめします。
まず、操作は以下の \(4\) 通りに限られます。
- \(A_1\) と \(A_2\) を入れ替える。
- \(A_2\) と \(A_3\) を入れ替える。
- \(A_3\) と \(A_4\) を入れ替える。
- \(A_4\) と \(A_5\) を入れ替える。
よって、この \(4\) つの操作をそれぞれ実際に試してみて、どれか \(1\) つで \(A\) が昇順になれば答えは Yes 、そうでなければ答えは No となります。
a = list(map(int, input().split()))
b = a.copy()
b[0], b[1] = b[1], b[0]
if b == [1, 2, 3, 4, 5]:
print("Yes")
exit()
b = a.copy()
b[1], b[2] = b[2], b[1]
if b == [1, 2, 3, 4, 5]:
print("Yes")
exit()
b = a.copy()
b[2], b[3] = b[3], b[2]
if b == [1, 2, 3, 4, 5]:
print("Yes")
exit()
b = a.copy()
b[3], b[4] = b[4], b[3]
if b == [1, 2, 3, 4, 5]:
print("Yes")
exit()
print("No")
このプログラムは for 文を用いることでより簡潔に書くことができます。
a = list(map(int, input().split()))
for i in range(4):
b = a.copy()
b[i], b[i + 1] = b[i + 1], b[i]
if b == [1, 2, 3, 4, 5]:
print("Yes")
exit()
print("No")
#include <bits/stdc++.h>
using namespace std;
int main()
{
vector<int> a(5);
for (int &i : a)
cin >> i;
vector<int> ans = {1, 2, 3, 4, 5};
for (int i = 0; i < 4; i++)
{
vector<int> b = a;
swap(b[i], b[i + 1]);
if (b == ans)
{
cout << "Yes" << endl;
return 0;
}
}
cout << "No" << endl;
return 0;
}
posted:
last update:
