不会用树,冲到40分求助,剩下tle
查看原帖
不会用树,冲到40分求助,剩下tle
363495
我爱杨帆楼主2020/8/10 13:07
#include<bits/stdc++.h>
using namespace std;
const int maxn=10000000;
int minn=maxn;
int main()
{ int n,a[50000],s,sum;
  cin>>n;
  for(int i=1;i<=n;i++)
  {
  	cin>>a[i];
  }
  for(int i=1;i<=n;i++)
  {
  	if(i==1) 
	  {
	  s+=a[i];
	  sum=a[i];
      }
  	else 
  	{ 
	  int j,k,temp;
  	  for( j=i-1;j>=1;j--)
	  	{ 
		  if(a[j]<a[i]) break;
        }
        if(i==2) 
		minn=abs(a[1]-a[2]);
		else if(j==i-1) 
		minn=abs(a[i]-a[i-1]);
		else if(j<1)
		minn=abs(a[i]-a[1]); 
        else 
		minn=min(abs(a[j]-a[i]),abs(a[j+1])-a[i]); 
        s+=minn;
      if(j!=i-1)
	  {
	  	temp=a[i];
	  	for(k=i-1;k>j;k--)
	  	 a[k+1]=a[k];
	  	a[k+1]=temp; 
	  } 
    }
  }
  cout<<s;	
}
2020/8/10 13:07
加载中...