代码如下:
#include<iostream>
#include<algorithm>
using namespace std;
int a[300005];
int b[300005];
int main()
{
int n,m,k;
cin>>n>>m>>k;
for(int i=1; i<=n; i++)
cin>>a[i];
sort(a+1,a+1+n);
for(int i=1; i<=m; i++){
int op,x;
cin>>op;
if(op==1){
cin>>x;
for(int j=1; j<=n; j++)
a[j]+=x;
for(int j=n; j>=1;j--){
if(a[j]>k)
b[j]=1;
else break;
}
}
else if(op==2){
cin>>x;
for(int j=1; j<=n; j++)
a[j]-=x;
for(int j=1; j<=n; j++){
if(a[j]<-k)
b[j]=1;
else break;
}
}
else if(op==3){
int sum=0;
for(int j=1; j<=n; j++)
if(b[j]==0)
sum++;
cout<<sum<<endl;
}
}
return 0;
}
评测记录
也就是说,前6个点WA,可样例过了。另外,后面的点全TLE,尽管我已经看到数据范围了,但我不知道我的代码会不会超时。。