60分WA代码求助,不知道错哪了
查看原帖
60分WA代码求助,不知道错哪了
211897
weconyed楼主2022/8/15 17:07
#include<bits/stdc++.h>
using namespace std;
int n;

struct node{
	int x;//营业额 
	int y;//时间 
};
bool cmp(node& x,node& y){
	return x.x<y.x;
}
node a[32800];
int main(){
   cin>>n;
   for(int i=1;i<=n;i++){
   	cin>>a[i].x;
	a[i].y=i;
   }	
   sort(a+1,a+n+1,cmp);
   int ans=0;
   for(int i=1;i<=n;i++){
   	if(a[i].y==1){
   		ans+=a[i].x;
   		continue;
	   }
   	int flagl=float('Inf'),flagr=float('Inf');
   	int dl=1,dr=1;
   	while(i-dl>0){
   		if(a[i-dl].y<a[i].y){
   			flagl=a[i].x-a[i-dl].x;
   			break;
		   }
		dl++;
	   }
	while(i+dr<n){
		if(a[i+dr].y<a[i].y){
   			flagr=a[i+dr].x-a[i].x;
   			break;
		   }
		dr++;
	}
	if(flagl>flagr) ans+=flagr;
	else ans+=flagl;
   } 
   cout<<ans;
   return 0;
} 
2022/8/15 17:07
加载中...