C语言为什么有些2ms有些1.2s运行?
查看原帖
C语言为什么有些2ms有些1.2s运行?
420994
普通的木头楼主2020/11/1 20:46

/划船最短路径 普及+提高/

#include<stdio.h>
void swap(int x[],long long int y);
int cull(int x[],long long int y);
int main(void)
{
   const long long int N;
   scanf("%d",&N);
   int a[N];
   long long int i;
   for(i=0;scanf("%d",&a[i])!=EOF;i++);
   swap(a,i);
   printf("%d",cull(a,i));
   return 0;
} 
void swap(int x[],long long int y)
{
   int i,j,h;
   for(i=0;i<y;i++)
   {
	    for(j=i+1;j<y;j++)
		{
			if(x[i]>x[j])
			{
				h=x[i];
				x[i]=x[j];
				x[j]=h;
   		 }
   	}
   }
}
int cull(int x[],long long int y)
{
   int num=0;
   y--;
   while(y>2)
   {
   	if(x[y]+x[y-1]+2*x[0]>x[0]+2*x[1]+x[y])
   	{
   		num+=x[0]+2*x[1]+x[y];
   	}
   	else num+=x[y]+x[y-1]+2*x[0];
   	y-=2;
   }
   if(y==2) num+=x[0]+x[1]+x[2];
   if(y==1) num+=x[1];
   return (num);
}
2020/11/1 20:46
加载中...