Run ID:27690
提交时间:2022-06-09 20:24:33
#include <iostream> #include <algorithm> #include <cstring> using namespace std; const int N = 110; //b记录本次排序后的数列 //last记录上次排序得到的数列 int a[N], b[N], last[N]; int n, k; //检查两个数列是否相同 bool check(int a[], int b[]) { for(int i = 0; i < n; i ++) if(a[i] != b[i]) return false; return true; } int main() { cin >> n >> k; for(int i = 0; i < n; i ++) cin >> a[i]; //将原数列a拷贝到last中 memcpy(last, a, sizeof a); int sum = 0; //枚举所有连续k个数的起始位置 for(int i = 0; i <= n - k; i ++) { //将a拷贝到b中进行排序 memcpy(b, a, sizeof a); sort(b + i, b + i + k); //排序后与上一个序列不相同 if(!check(last, b)) sum ++; //将b拷贝到last memcpy(last, b, sizeof b); } cout << sum << endl; return 0; }