为什么这道题sort反而不如擂台快?
#include <bits/stdc++.h>
using namespace std;
const int maxn=5000005;
int a[maxn],d[maxn];
int main(){
int n,p;
cin>>n>>p;
for(int i=1;i<=n;i++){
cin>>a[i];
d[i]=a[i]-a[i-1];
}
for(int i=1;i<=p;i++){
int x,y,z;
cin>>x>>y>>z;
d[x]+=z;
d[y+1]-=z;
}
for(int i=1;i<=n;i++){
a[i]=d[i]+a[i-1];
}
sort(a+1,a+1+n);
cout<<a[1];
return 0;
}
如上,这份代码会TLE最后一个点 而下面这份代码则不会
#include <bits/stdc++.h>
using namespace std;
const int maxn=5000005;
int a[maxn],d[maxn];
int main(){
int n,p;
cin>>n>>p;
for(int i=1;i<=n;i++){
cin>>a[i];
d[i]=a[i]-a[i-1];
}
for(int i=1;i<=p;i++){
int x,y,z;
cin>>x>>y>>z;
d[x]+=z;
d[y+1]-=z;
}
for(int i=1;i<=n;i++){
a[i]=d[i]+a[i-1];
}
int min=1e9;
for(int i=1;i<=n;i++)
if(min>a[i])min=a[i];
cout<<min;
return 0;
}
就很奇怪(害我检查半天