[AtCoder] ABC 150 C – Count Order
問題
方針
順列の生成を行えば良いので、next_permutuation を使います。
コード
#include <bits/stdc++.h> using namespace std; typedef long long ll; int main() { int N; cin >> N; int P[N], Q[N]; for (int i = 0; i < N; i++) { cin >> P[i]; } for (int i = 0; i < N; i++) { cin >> Q[i]; } vector<int> v(N); for (int i = 0; i < N; i++) { v[i] = i + 1; } bool flag = true; int a = 1; while(flag) { flag = false; for (int i = 0; i < N; i++) { if (v[i] != P[i]) { flag = true; next_permutation(v.begin(), v.end()); a++; } } } for (int i = 0; i < N; i++) { v[i] = i + 1; } int b = 1; flag = true; while(flag) { flag = false; for (int i = 0; i < N; i++) { if (v[i] != Q[i]) { flag = true; next_permutation(v.begin(), v.end()); b++; } } } cout << abs(a - b) << "\n"; return 0; }
ディスカッション
コメント一覧
まだ、コメントがありません