因为一个>=写成>少了24分,如果能多省下五分钟,是不是结局有所不同呢 因为这24分,丢了团队国三,丢了个人国三,丢了学分丢了奖金,好像一切都因为这个失误显得黯然无色,已经没有机会,也好像没有复试的筹码了,准备了半年的努力都好像成了泡沫,为什么天梯赛是分数获奖呢,这样好像对每年参加的同学并不公平,好像没有遇到考试比赛是分数获奖吧,高考是分数线,四六级都是排位分,, 最后只是个技不如人的菜狗罢了。。。滚去卷初试吧
#include<bits/stdc++.h>
using namespace std;
const int N=1e3+9;
int arr[N];
stack<int>st;
vector<int>ans[N];
int main(){
int n,m,k;
cin>>n>>m>>k;
int now=0x3f3f3f3f,ok=1;
int tot=0;
for(int i=1;i<=n;i++){
cin>>arr[i];
}
for(int i=1;i<=n;i++){
if(ans[tot].size()>=k){tot++;now=0x3f3f3f3f;}
if(st.size()>=m&&arr[i]>now){
now=0x3f3f3f3f;
tot++;
if(ans[tot].size()>=k){tot++;now=0x3f3f3f3f;}
}
while(st.size()){
if(ans[tot].size()>=k){tot++;now=0x3f3f3f3f;}
if(st.top()<=now){
ans[tot].push_back(st.top());
now=st.top();
st.pop();
}
else break;
}
if(ans[tot].size()>=k){tot++;now=0x3f3f3f3f;}
if(st.size()){
if(ans[tot].size()>=k){tot++;now=0x3f3f3f3f;}
if(arr[i]<=now){
ans[tot].push_back(arr[i]);
now=arr[i];
if(ans[tot].size()>=k){tot++;now=0x3f3f3f3f;}
}
else {
if(st.size()>m){
tot++;
now=0x3f3f3f3f;
ans[tot].push_back(arr[i]);
if(ans[tot].size()>=k){tot++;now=0x3f3f3f3f;}
}
else {
st.push(arr[i]);
}
}
}
else {
if(arr[i]<=now){
ans[tot].push_back(arr[i]);
now=arr[i];
if(ans[tot].size()>=k){tot++;now=0x3f3f3f3f;}
}
else {
st.push(arr[i]);
}
}
}
while(st.size()){
int p=st.top();
st.pop();
if(p<=now){
ans[tot].push_back(p);
now=p;
if(ans[tot].size()>=k){tot++;now=0x3f3f3f3f;}
}
else {
tot++;now=0x3f3f3f3f;
ans[tot].push_back(p);
now=p;
}
}
for(int i=0;i<=tot;i++){
for(int j=0;j<ans[i].size();j++){
if(j)cout<<" ";
cout<<ans[i][j];
}
if(i!=tot)cout<<"\n";
}
return 0;
}
|