第三题卡牌,稍微改了一下 #include<iostream> (5488)#include<vector> using namespace std; int main() { int n; cin >> n;//输入每串的个数 vector<int> a(n); vector<int> b(n); for (int i = 0; i < n; i++) { cin >> a[i];//输入a } for (int i = 0; i < n; i++) { cin >> b[i];//输入b } int count = 0; for (int i = 0; i < n-1; i++) { if (a[i] > a[i+1]) { if (i + 1 <= n && b[i] > b[i + 1] && b[i - 1] > b[i + 1]) {//首先保证数组不能越界i<n,然后看b的后一个数是否小于前一个数 //最后看b的后一个数是否大于a的前一个数,满足条件则交换 if (b[i - 1] >= b[i]) { swap(a[i], b[i + 1]);//交换 swap(a[i + 1], b[i]); // swap(a, b, i + 1); count++; } } else //如果b的值大于其后一个数,则不满***换要求, { cout << -1;//如果不满足,退出 return 0; } } } cout << count; system("pause"); return 0; }
点赞 评论

相关推荐

牛客网
牛客企业服务