我下载了一个数据点之后,发现输入完毕之后竟然还可以继续输入!我以为是快读的遗漏,可现在还是14个TLE!求大佬调试代码!
```cpp
#include<bits/stdc++.h>
int function(std::queue<int> queue){
if(queue.empty()){
return -2147483648;
}else{
return queue.front();
};
};
std::pair<int,int> max(std::pair<int,int> cmp1,std::pair<int,int> cmp2,std::pair<int,int> cmp3){
return std::max(std::max(cmp1,cmp2),cmp3);
};
int main(int argc,char **argv){
int maxn,maxm,maxq,tmp1,tmp2,tmp3;
scanf("%d %d %d %d %d %d",&maxn,&maxm,&maxq,&tmp1,&tmp2,&tmp3);
int *mimizu=new int[maxn+1]{0};
std::queue<int> queue[4];
for(int iter=1;iter<=maxn;++iter){
scanf("%d",&mimizu[iter]);
};
std::sort(mimizu+1,mimizu+1+maxn,std::greater<int>());
for(int iter=1;iter<=maxn;++iter){
queue[1].push(mimizu[iter]);
};
for(int time=1;time<=maxm;++time){
std::pair<int,int> pair=max({function(queue[1]),1},{function(queue[2]),2},{function(queue[3]),3});
int first=pair.first+maxq*time;
int second=pair.second;
queue[second].pop();
int head=first*tmp1/tmp2;
int tail=first-head;
queue[2].push(head-maxq*(time+1));
queue[3].push(tail-maxq*(time+1));
if(time%tmp3==0){
printf("%d ",first);
};
};
putchar('\n');
for(int iter=1;iter<=maxn+maxm;++iter){
std::pair<int,int> pair=max({function(queue[1]),1},{function(queue[2]),2},{function(queue[3]),3});
int first=pair.first;
int second=pair.second;
queue[second].pop();
if(iter%tmp3==0){
printf("%d ",first+maxq*maxm);
};
};
return 0;
};
```
by Kapo_Hisy @ 2024-01-13 13:27:08
最后一个点也AC了,但是还是有14个TLE还是未停止输入,求大佬解答输入部分的问题!
```cpp
int maxn,maxm,maxq,tmp1,tmp2,tmp3;
scanf("%lld %lld %lld %lld %lld %lld",&maxn,&maxm,&maxq,&tmp1,&tmp2,&tmp3);
int *mimizu=new int[maxn+1]{0};
std::queue<int> queue[4];
for(int iter=1;iter<=maxn;++iter){
scanf("%lld",&mimizu[iter]);
};
```
by Kapo_Hisy @ 2024-01-13 14:10:12