求助!样例过了,但有7个点超时!
查看原帖
求助!样例过了,但有7个点超时!
771965
liaopengjiePMO2楼主2022/9/17 11:26

这道题使用排序,下面代码30分

#include <bits/stdc++.h>
using namespace std;
int s,c;
int a[5010],b[5010];
void sort(int *a);
int main()
{
scanf("%d",&s);
for(int j=1;j<=s;j++)scanf("%d",&a[j]); 
for(int j=1;j<=s;j++)
for(int i=1;i<=j;i++)sort(a);
for(int i=1;i<=s;i++)b[i]=a[i+1]-a[i];
for(int i=1;i<=s;i++)c=max(c,b[i]);
printf("%d",c); 
return 0;
}
void sort(int *a){
	for(int i=1;i<s;i++) 
    for(int j=s;j>i;j--)
    if(a[j]<a[j-1])
    {a[0]=a[j];
	     a[j]=a[j-1];
	     a[j-1]=a[0];
	}
}

其他7个点全部超时,所以,我用了sort函数(代码如下)

#include <bits/stdc++.h>
using namespace std;
int s,c;
int a[5010],b[5010];
int main()
{
scanf("%d",&s);
for(int j=1;j<=s;j++)scanf("%d",&a[j]); 
for(int j=1;j<=s;j++)
for(int i=1;i<=j;i++)sort(a+1,a+s);
for(int i=1;i<=s;i++)b[i]=a[i+1]-a[i];
for(int i=1;i<=s;i++)c=max(c,b[i]);
printf("%d",c); 
return 0;
}

结果:前面三个点WA,其他TLE

望各位大佬给以帮助,谢谢!

2022/9/17 11:26
加载中...