CF#768(Div.2)
CF只有两个小时的比赛时间,一旦出了点“小”差错 基本就废了
B题后来按照扭曲的题意想了好久一直WA,1h ran out很慌地看了C并A了
后来发现B实在简单很后悔又把B A了,然而比赛还剩18min,我还在rk2800
想着有没有可能把D做了 但看到standings上人均30min才A掉 于是感觉不大可能
比赛前9min有了思路并且显然正确,赶着写,但debug时Contest is over显示在屏幕上 宣告结束
又一次下分 看来这种高强度考场环境还是要多多参加益善!再下几次分看看表现会不会好些吧
附D题纪念比赛结束后6min自认为可以A的code,等可以提交了再提交以下
#include <bits/stdc++.h> using namespace std; const int N=2e5+5; int n,k,a[N],bu[N]; void sol(){ cin>>n>>k;for(int i=1;i<=n;i++)bu[i]=0; for(int i=1;i<=n;i++)cin>>a[i],bu[a[i]]++; int cnt=0,x=0,y=1e9; for(int i=1,j=1;i<=n;i++){ while(j<=n&&cnt-(n-cnt)<k)cnt+=bu[j],j++; if(cnt-(n-cnt)>=k){ if(j-i<y-x)x=i,y=j; }cnt-=bu[i]; }cout<<x<<' '<<y-1<<'\n'; int c=0,las=0; for(int o=1;o<=n;o++){ c+=(x<=a[o]&&a[o]<=y); if(c>(o-c)&&k!=1){k--;cout<<las+1<<' '<<o<<'\n';las=o;c=0;} }cout<<las+1<<' '<<n<<'\n'; } int main(){int t;cin>>t;while(t--)sol();}