当前位置: 代码迷 >> 综合 >> 【PAT乙级】1070 结绳
  详细解决方案

【PAT乙级】1070 结绳

热度:87   发布时间:2024-03-08 03:12:34.0

在这里插入图片描述

C++代码

#include<bits/stdc++.h>
using namespace std;
double a[10000]={
    0};
void quicksort(int left,int right){
    int i,j;double t,temp;if(left>right) return;temp=a[left];i=left;j=right;while(i!=j){
    while(a[j]>=temp&&i<j) j--;while(a[i]<=temp&&i<j) i++;if(i<j){
    t=a[i];a[i]=a[j];a[j]=t;}}a[left]=a[i];a[i]=temp;quicksort(left,i-1);quicksort(i+1,right);    
}int main(){
    int n;scanf("%d",&n);for(int i=0;i<n;i++){
    scanf("%lf",&a[i]);}quicksort(0,n-1);double s=0;for(int i=0;i<n-1;i++){
    s=(a[i]+a[i+1])/2.0;a[i+1]=s;}printf("%d",(int)s);return 0;
}

备注
用vector容器和sort排序会超时,用冒泡排序也会超时,所以我这里用了快速排序