社区讨论
60分WA+RE求调
P2827[NOIP 2016 提高组] 蚯蚓参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mjazcie4
- 此快照首次捕获于
- 2025/12/18 13:08 3 个月前
- 此快照最后确认于
- 2025/12/20 15:45 3 个月前
RT
CPP#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e5+5;
int n,m,q,t,a[N],ans[N],del;
double u,v,p;
queue<int>q1,q2,q3;
signed main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin>>n>>m>>q>>u>>v>>t;
p=u/v;
// cout<<p<<'\n';
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
sort(a+1,a+n+1);
for(int i=n;i;i--)
{
q1.push(a[i]);
}
for(int i=1;i<=m;i++)
{
int maxn,maxid,m2,m3;
if(i==1)
{
maxn=q1.front(),maxid=1;
}
else
{
int n1=0,n2=0,n3=0;
if(!q1.empty()) n1=q1.front();
if(!q2.empty()) n2=q2.front();
if(!q3.empty()) n3=q3.front();
//get maxn
if(n1>=n2 and n1>=n3) maxn=n1,maxid=1;
else if(n2>=n1 and n2>=n3) maxn=n2,maxid=2;
else maxn=n3,maxid=3;
}
//delete
if(maxid==1) q1.pop();
else if(maxid==2) q2.pop();
else q3.pop();
//get new val
int tmp=maxn+del;
if(i%t==0) cout<<tmp<<' ';
m2=floor(p*tmp)-del-q;
m3=tmp-floor(p*tmp)-del-q;
q2.push(m2),q3.push(m3);
// cout<<del<<' ';
del+=q;
}
cout<<'\n';
int j=1;
while(!q1.empty() or !q2.empty() or !q3.empty())
{
int maxn,maxid,n1=0,n2=0,n3=0;
if(!q1.empty()) n1=q1.front();
if(!q2.empty()) n2=q2.front();
if(!q3.empty()) n3=q3.front();
//get maxn
if(n1>=n2 and n1>=n3) maxn=n1,maxid=1;
else if(n2>=n1 and n2>=n3) maxn=n2,maxid=2;
else maxn=n3,maxid=3;
//delete
if(maxid==1) q1.pop();
else if(maxid==2) q2.pop();
else q3.pop();
if(j%t==0) cout<<maxn<<' ';
j++;
}
cout<<'\n';
return 0;
}
救救孩子!
回复
共 0 条回复,欢迎继续交流。
正在加载回复...