排队打饭
排隊打飯
Time Limit: 1000ms?? Memory limit: 65536K??有疑問?點這里^_^
題目描述
一天中午,有N個學生來到食堂買飯,他們需要排成了一個一字隊伍并按順序打飯,現在已經知道了每個人買飯的時間,現在食堂的管理員希望知道他們按照怎樣的順序買飯能夠使得所有人等待的時間總和最小(每個人等待的時間?=?排在他前面的人的打飯時間和+自己打飯的時間)。
輸入
輸入的第一行包含一個整數T(T≤30)表示數據組數,每組數據包括兩行,第一行為一個整數N表示人數,第二行為N個整數表示每個人買飯所需要的時間,所有整數均不超過100。輸出
每組數據輸出一行,包括一個整數,表示所有人等待時間總和的最小值。示例輸入
251 2 3 4 5545 10 48 37 9示例輸出
35334提示
來源
示例程序
#include<stdio.h> int main() { int i,j,n,m,k,t,a[101],b,c[101],l; scanf("%d",&n); for(l=0;l<n;l++) { scanf("%d",&m); for(j=0;j<m;j++) scanf("%d",&a[j]); for(i=0;i<m-1;i++) { k=i; for(j=i+1;j<m;j++) if(a[k]>a[j]) k=j; if(k!=i) { t=a[k]; a[k]=a[i]; a[i]=t; } } t=0; for(i=0;i<m;i++) { k=a[i]; if(i==0) { t=k; c[i]=k; } else { t+=k; c[i]=t; } } b=0; for(j=0;j<m;j++) b+=c[j]; printf("%d\n",b); } }總結
- 上一篇: 阿里云HttpDns接入
- 下一篇: html中label如何居中,怎么让la