求助0WA
查看原帖
求助0WA
663638
Butterfly_qwq楼主2022/12/1 22:08

看完第一篇题解思路打了一遍,但是WA。和题解对拍也没问题

#include<bits/stdc++.h>
using namespace std;
struct ta
{
	long long id,s,ti,pr;
	bool operator <(const ta &a)const
	{
		if(pr==a.pr)return s>a.s;
		else return pr<a.pr;
	}
};
priority_queue<ta> pq;
int main()
{
	freopen("P2278.out","w",stdout);
	long long t;
	ta fc;
	while(scanf("%d%d%d%d",&fc.id,&fc.s,&fc.ti,&fc.pr)!=EOF)
	{
		while(!pq.empty()&&t+pq.top().ti<=fc.s)
		{
			ta Top=pq.top();
			pq.pop();
			cout<<Top.id<<' '<<t+Top.ti<<'\n';
			t+=Top.ti;
        }
        if(!pq.empty())
        {
        	ta Top=pq.top();
			pq.pop();
			Top.ti=Top.ti-fc.s+t;
			pq.push(Top);
		}
		pq.push(fc);
		t=fc.s;
	}
	while(!pq.empty())
	{
		ta Top=pq.top();
		pq.pop();
		t+=Top.ti;
		cout<<Top.id<<' '<<t<<'\n';
	}
	return 0;
}

当然也有可能是我对拍写错了 对拍代码(bat)

@echo off
:loop
P2278rand.exe
P2278.exe
right_P2278.exe
fc P2278.out right_P2278.out
if not errorlevel 1 goto loop
pause
2022/12/1 22:08
加载中...