답안 #138730

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
138730 2019-07-30T09:19:48 Z WongHokFong_cpp Sails (IOI07_sails) C++14
0 / 100
1000 ms 2668 KB
#include <iostream>
#include <cstdlib>
#include <algorithm>
#include <queue> 
using namespace std;
int n,h,k,height,mini,s,c;
struct smg
{
	int h,k;
}f[100001];
bool cmp(smg a,smg b)
{
	return a.h<b.h;
}
struct helo
{
	int flagged,num;
	bool operator < (const helo a) const
	{
		if (flagged==a.flagged) return num>a.num;
		else return flagged>a.flagged;
	} 
}pls[100001];
priority_queue <helo> q;
int main(void)
{
	cin>>n;
	for (int i=1;i<=n;i++)
	{
		cin>>h>>k;height=max(h,height);f[i].h=h;f[i].k=k;
	}
	sort(f+1,f+n+1,cmp);
	for (int i=1;i<=height;i++)
	{
		q.push((helo){0,i});
	}
	for (int i=1;i<=n;i++)
	{
		for (int p=1;p<=f[i].k;p++)
		{
			helo cccccc=q.top();
			q.pop();
			c=1;pls[c]=cccccc;
			while (cccccc.num>f[i].h)
			{
				//cout<<"ES";
				c++;
				pls[c]=q.top();
				cccccc=q.top();
				q.pop();
			}
			cccccc.flagged++;
			//cout<<cccccc.flagged<<' ';
			q.push(cccccc);
			for (int xd=1;xd<=c-1;xd++) q.push(pls[xd]);
		}
		//cout<<endl<<endl;
	}
	for (int i=1;i<=height;i++) 
	{
		helo cc=q.top();
		q.pop();
		//cout<<cc.flagged<<' ';
		s+=(cc.flagged-1)*cc.flagged/2;
	}
	cout<<s;
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 256 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 380 KB Output is correct
2 Incorrect 2 ms 376 KB Output isn't correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 256 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 44 ms 372 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1062 ms 376 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1072 ms 884 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1079 ms 1140 KB Time limit exceeded
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1079 ms 1648 KB Time limit exceeded
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1080 ms 2028 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1069 ms 2668 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1070 ms 2668 KB Time limit exceeded
2 Halted 0 ms 0 KB -