开题开错翻车场.jpg
#include<bits/stdc++.h>
using namespace std;
int main(){
int H , W , A , B; cin >> H >> W >> A >> B;
if(A > W / 2 || B > H / 2){puts("-1"); return 0;}
for(int i = 1 ; i <= B ; ++i){
for(int j = 1 ; j <= A ; ++j)
putchar('0');
for(int j = A + 1 ; j <= W ; ++j)
putchar('1');
putchar('\n');
}
for(int i = B + 1 ; i <= H ; ++i){
for(int j = 1 ; j <= A ; ++j)
putchar('1');
for(int j = A + 1 ; j <= W ; ++j)
putchar('0');
putchar('\n');
}
return 0;
}
#include<bits/stdc++.h>
using namespace std;
int main(){
static int arr[200003]; int N , K;
cin >> N >> K; for(int i = 1 ; i <= N ; ++i) cin >> arr[i];
set < int > num; int ans = 1;
for(int i = 1 ; i <= K ; ++i) num.insert(arr[i]);
for(int i = K + 1 ; i <= N ; ++i){
ans += *num.begin() != arr[i - K] || *--num.end() > arr[i];
num.erase(arr[i - K]); num.insert(arr[i]);
}
bool flg = 0; int pre = -1 , cnt = 0;
for(int i = 1 ; i <= N ; ++i){
if(pre < arr[i]) ++cnt;
else cnt = 1;
pre = arr[i];
if(cnt == K){flg = 1; --ans;}
}
cout << ans + flg; return 0;
}
原文:https://www.cnblogs.com/Itst/p/11568311.html