小白求大佬分享一下贪心练习题中,牛牛的朋友这道题的题解。
小白求大佬分享一下贪心练习题中,牛牛的朋友这道题的题解。 原题:链接:https://ac.nowcoder.com/acm/problem/21545 #include<cstdio> #include<algorithm> using namespace std; int main() { long long array[55],a[55]; long long n,x,s; long long i,j; while(~scanf("%lld",&n)) { s=0; long long Mi,Ma; //Mi记录最小数据,Ma记录最大数据 for(i=0;i<=n-1;i++) { scanf("%lld",&array[i]); if(i==0) { Mi=array[0]; Ma=array[0]; } else if(Mi>array[i]) { Mi=array[i]; } else if(Ma<array[i]) { Ma=array[i]; } } //printf("%lld %lld min max\n",Mi,Ma); scanf("%lld",&x); if(Mi==Ma) printf("0\n"); else { sort(array,array+n); a[0]=array[0]+x; if(a[0]>=array[1]) a[1]=array[1]+x; else a[1]=array[1]-x; for(i=2;i<=n-1;i++) { if(a[i-1]>array[i]) { a[i]=array[i]+x; } else a[i]=array[i]-x; } sort(a,a+n); printf("%lld\n",a[n-1]-a[0]); } } return 0; } 这是我自己的代码,样例通过率是76%,不知怎么修改。 谢谢!!!
#题解#