社区讨论
wa *2 是不是要开 long long?
P1223排队接水参与者 5已保存回复 4
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 4 条
- 当前快照
- 1 份
- 快照标识符
- @mhjd220d
- 此快照首次捕获于
- 2025/11/04 00:34 4 个月前
- 此快照最后确认于
- 2025/11/04 00:34 4 个月前
CPP
#include <bits/stdc++.h>
using namespace std;
struct P{
int number;
int time;
int wait_time;
};
int n;
P a[1001];
int main()
{
cin >> n;
for (int i=1;i<=n;i++)
{
cin >> a[i].time;
a[i].number = i;
}
for (int i=1;i<=n;i++)
{
for (int j=1;j<=n-i;j++)
{
if (a[j].time > a[j+1].time)
{
swap(a[j],a[j+1]);
}
else if (a[j].time == a[j+1].time && a[j].number > a[j+1].number)
{
swap(a[j], a[j+1]);
}
}
}
for (int i=1;i<=n;i++)
{
cout << a[i].number<< ' ';
}
cout << '\n';
double ave;
int s=0;
a[1].wait_time = 0; //第一个人不需要等任何人
//第二行人的等待时间 = 第一个人的节水时间 + 第一个人的等待时间(0)
//第三个人的等待时间 = 第二个人的等待时间 + 第二个人的节水时间 ...
//第n个人的等待时间 = 第n-1个人的等待时间 + 第n-1个人的节水时间
for (int i=2;i<=n;i++)
{
a[i].wait_time = a[i-1].wait_time + a[i-1].time;
}
//求平均等待时间
for (int i=1;i<=n;i++)
{
s += a[i].wait_time;
}
ave = (double)s/n;
printf("%.2lf",ave);
return 0;
}
回复
共 4 条回复,欢迎继续交流。
正在加载回复...