讨论 / 28行快排推销员,你值得拥有
lijie201602 2017-10-08 22:16:05
点我顶贴 收藏 删除
#include<cstdio>

int a[100010],f[100010],n,ans;

void qsort(int l,int r)

{

int i=l,j=r,mid=a[(l+r)/2],t;

while(i<=j)

{

while(a[i]<mid) i++;

while(a[j]>mid) j--;

if(i<=j)

{

t=a[i]; a[i]=a[j]; a[j]=t;

i++; j--;

}

}

if(l<j) qsort(l,j);

if(i<r) qsort(i,r);

}

int main()

{

scanf("%d",&n);

for(int i=1;i<=n;i++) scanf("%d",&f[i]);

for(int i=1;i<=n;i++) scanf("%d",&a[i]);

qsort(1,n-1);

ans=f[n]*2+a[n]; printf("%d\n",ans);

for(int i=n-1;i>=1;i--) { ans+=a[i]; printf("%d\n",ans); }

return 0;

}

#1 lijie201602@2017-10-08 22:17:12
回复 删除
不好意思第二个才是正确的
#2 lijie201602@2017-10-08 22:17:15
回复 删除
#include<cstdio>

int a[100010],f[100010],n,ans;

void qsort(int l,int r)

{

int i=l,j=r,mid=a[(l+r)/2],t;

while(i<=j)

{

while(a[i]<mid) i++;

while(mid<a[j]) j--;

if(i<=j)

{

t=a[i]; a[i]=a[j]; a[j]=t;

i++; j--;

}

}

if(l<j) qsort(l,j);

if(i<r) qsort(i,r);

}

int main()

{

scanf("%d",&n);

for(int i=1;i<=n;i++) scanf("%d",&f[i]);

for(int i=1;i<=n;i++) scanf("%d",&a[i]);

qsort(1,n-1);

ans=f[n]*2+a[n]; printf("%d\n",ans);

for(int i=n-1;i>=1;i--) { ans+=a[i]; printf("%d\n",ans); }

return 0;

}

#3 lijie201602@2017-10-08 22:17:55
回复 删除
#include<cstdio>

int a[100010],f[100010],n,ans;

void qsort(int l,int r)

{

int i=l,j=r,mid=a[(l+r)/2],t;

while(i<=j)

{

while(a[i]<mid) i++;

while(mid<a[j]) j--;

if(i<=j)

{

t=a[i]; a[i]=a[j]; a[j]=t;

i++; j--;

}

}

if(l<j) qsort(l,j);

if(i<r) qsort(i,r);

}

int main()

{

scanf("%d",&n);

for(int i=1;i<=n;i++) scanf("%d",&f[i]);

for(int i=1;i<=n;i++) scanf("%d",&a[i]);

qsort(1,n-1);

ans=f[n]*2+a[n]; printf("%d\n",ans);

for(int i=n-1;i>=1;i--) { ans+=a[i]; printf("%d\n",ans); }

return 0;

}

#4 lijie201602@2017-10-08 22:18:25
回复 删除
有毒,这三个没区别的程序,一个WA10,一个WA40,最后一个AC。。。
#5 renqing@2017-10-08 23:20:10
回复 删除
哈哈 不好意思 正在迁移测评服务器,所以不是特别稳定。把WA10和WA40的重新测评了一下,现在都是AC的啦
#6 lijie201602@2017-10-09 03:59:30
回复 删除
回复 #5 renqing:谢谢您!
#7 沧海一声喵@2018-01-22 01:16:48
回复 删除
不对吧,连样例都过不了却能AC,牛逼了

查看更多回复
提交回复