题2的时间复杂度
#include<bits/stdc++.h>
using namespace std;
double p[200005];
int main(){
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
int t;
cin>>t;
while(t--){
memset(p,0,sizeof(p));
int n,x,y;
cin>>n>>x>>y;
for(int i=1;i<=n;i++){
cin>>p[i];
}
if(n==1){
double x;
if(p[0]<=y)x=0;
else x=p[0]-y;
double y=p[0]*x*0.01;
cout<<min(x,y)<<endl;
continue;
}
sort(p+1,p+1+n);
double sum=0;
double temp1=p[n];
double temp2=p[n-1];
double sum3=0;
for(int i=1;i<=n-2;i++){
sum3+=p[i];
}//先把前n-2个商品加起来
p[n]=p[n]*x*0.01;
if(p[n-1]<=y)p[n-1]=0;
else p[n-1]-=y;
sum=sum3+p[n]+p[n-1];
double sum2=0;
p[n]=temp1,p[n-1]=temp2;
p[n-1]=p[n-1]*x*0.01;
if(p[n]<=y)p[n]=0;
else p[n]-=y;
sum2=sum3+p[n]+p[n-1];
cout<<min(sum,sum2)<<endl;
}
return 0;
}
我把memset去掉就过了,memset的时间复杂度才o(n)呀,相当于多了一个循环就超时了吗,这题时间复杂度怎么算的,小白不懂

