样例没过的35分TLE求救
查看原帖
样例没过的35分TLE求救
228087
woshixingyu楼主2020/10/30 20:19
#include<bits/stdc++.h>
using namespace std;
priority_queue<int>ans;
queue<int>sum;
int n,m,q,u,v,t;
double p;

int main(){
    cin>>n>>m>>q>>u>>v>>t;
    p=(double)u/v;
    int maxn1=m/t;
	int maxn2=(m+n)/t;
    for(int i=1;i<=n;i++){
        int x;
        cin>>x;
        ans.push(x);
    }
    for(int j=1;j<=m;j++){
        int top=ans.top();
        ans.pop();
        sum.push(top);
        int a1=floor(p*(double)top),a2=top-a1;
        int b[100000];
        int c=1;
        int len=ans.size();
        for(int i=1;i<=len;i++){
        	b[c]=ans.top();
        	ans.pop();
        	c++;
        }
        for(int i=1;i<=len;i++)
        	b[i]=b[i]+q;
    	for(int i=1;i<=len;i++)
    		ans.push(b[i]);
        ans.push(a1);
		ans.push(a2);
       	
    }
    int cnt=1;
    int len2=sum.size();
    int d[100000];
    int c=1;
    for(int i=1;i<=len2;i++){
    	d[c]=sum.front();
    	sum.pop();
    	c++;
    }
    for(int i=1;i<=maxn1;i++){
    	if(cnt%t==0){
    		cout<<d[cnt]<<' ';
    	}
    	cnt++;
    }
    cout<<endl;
    for(int i=1;i<=maxn2;i++){
    	cout<<ans.top()<<' ';
    	ans.pop();
    }
    return 0;
}
2020/10/30 20:19
加载中...