Chinaunix首页 | 论坛 | 博客
  • 博客访问: 18439
  • 博文数量: 11
  • 博客积分: 314
  • 博客等级: 二等列兵
  • 技术积分: 130
  • 用 户 组: 普通用户
  • 注册时间: 2012-05-05 12:44
文章分类
文章存档

2012年(11)

我的朋友
最近访客

分类: C/C++

2012-05-05 16:37:40

一、题目
1003 洗澡
又到了炎热的夏天了,令华电学子恼火的排队洗澡有没有令你很郁闷?最近学习了操作系统的MM想采用一种作业调度算法来解决长时间等待的问题。现在假设只剩下一个淋浴可供使用了,只有等一个人洗完之后下一个人才可以开始洗澡。这个时候来了N个人洗澡,她们每个人都宣布一个自己洗澡的时间Ai(大家都严格遵守这个时间)。这样MM就开始对她们的洗澡顺序进行调度了,使得所有人的等待时间之和最小。
输入
第一行是N(1<=N<=1000),第二行是N个正整数Ai(0输出
输出一个满足题目要求的序列,每相邻两个序号之间输出一个英文逗号。
样例输入
4
3 10 6 8
样例输出
1,3,4,2
提示
每一组测试数据输出的时候,要注意不要在最后一个数字后面输出多余的逗号。
二、分析
主要是保存数字的位置,比较数的大小
三、AC源代码
 
01 #include  
02 typedef struct 
03 { 
04     int a; 
05     int b; 
06 }no; 
07   
08 int main() 
09 { 
10     no a[1000],t; 
11     int i,n,j; 
12     scanf("%d",&n); 
13     for(i=0;i
14     { 
15         scanf("%d",&a[i].a); 
16         a[i].b=i+1; 
17     } 
18     for(i=0;i
19         for(j=i;j
20             if(a[i].a>a[j].a) 
21             { 
22                 t=a[i]; 
23                 a[i]=a[j]; 
24                 a[j]=t; 
25             } 
26   
27     for(i=0;i
28         printf("%d,",a[i].b); 
29     printf("%d",a[i].b); 
30     printf("\n"); 
31   
32     return 0; 
33 }
阅读(859) | 评论(0) | 转发(0) |
0

上一篇:1001 打印“方块”

下一篇:a+b问题

给主人留下些什么吧!~~