- 排队接水
可以帮忙看看哪错了吗?82分没ac
- @ 2025-8-8 22:38:32
#include <bits/stdc++.h> using namespace std;
//luogu#P1223. 排队接水 //反证证明可行
int sum; const int maxn = 1005; struct stu{ int time; int id; int s; }a[maxn]; int main(){ int n; cin >> n; for(int i = 1; i <= n; i++){ cin >> a[i].time; a[i].id=i; } for(int i = 1;i<n;i++){ for(int j=i+1;j<=n;j++){ if(a[i].time>a[j].time){ stu temp = a[j]; a[j]=a[i]; a[i]=temp; } } } for(int i = 1; i<=n;i++){ cout<<a[i].id<<' '; a[i].s+=a[i-1].s+a[i-1].time; sum+=a[i].s; } // cout<<sum; cout<<endl<<fixed<<setprecision(2)<<1.0*sum/n; return 0; }
1 条评论
-
Eternity-Sky @ 2025-8-9 17:34:39在排序时,如果相同,应该按 升序排列
bool cmp(stu x, stu y) { if (x.time == y.time) return x.id < y.id; // 时间相同,按 id 升序 return x.time < y.time; // 否则按时间升序 }
- 1
信息
- ID
- 5281
- 时间
- ms
- 内存
- MiB
- 难度
- 3
- 标签
- 递交数
- 85
- 已通过
- 44
- 上传者