第三题 #include<bits/stdc++.h> using namespace std; int main() { int n; cin >> n; vector<int>a; vector<int>b; for (int i = 0; i < n; i++) { int temp; cin >> temp; a.push_back(temp); } for (int i = 0; i < n; i++) { int temp; cin >> temp; b.push_back(temp); } int count = 0; bool isChanged = false; bool isRight = true; while (true) { isChanged = false; isRight = true; for (int i = 0; i < n - 1; i++) { if (a[i] > a[i + 1]) { isRight = false; if (b[i + 1] <= b[i]) { count++; isChanged = true; int temp = a[i]; a[i] = b[i + 1]; b[i + 1] = temp; temp = a[i + 1]; a[i + 1] = b[i]; b[i] = temp; } } } if (!isRight && !isChanged) { cout << -1 << endl; return 0; } else if (isRight) { break; } } cout << count << endl; return 0; }