안녕하세요. 오늘은 수를 바꿀 거예요.
https://www.acmicpc.net/problem/31409
a_i가 i만 아니면 됩니다. 그러므로 a_i가 i인것의 개수를 세고 다 바꿔주면 됩니다.
#include <iostream>
#define ll long long
using namespace std;
int main(void)
{
ios_base::sync_with_stdio(false); cin.tie(NULL);
ll N, i, arr[101010] = { 0 }, cnt = 0;
cin >> N;
for (i = 1; i <= N; i++)
{
cin >> arr[i];
if (arr[i] == i)
{
if (i == 1) arr[i] = N;
else arr[i] = 1;
cnt++;
}
}
cout << cnt << "\n";
for (i = 1; i <= N; i++)
cout << arr[i] << ' ';
}
감사합니다.