大佬们,求助!是什么导致了14个TLE!

P2827 [NOIP2016 提高组] 蚯蚓

我下载了一个数据点之后,发现输入完毕之后竟然还可以继续输入!我以为是快读的遗漏,可现在还是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


|