⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1311.cpp

📁 平时acm训练时ac的源代码
💻 CPP
字号:
//1311

#include <iostream>
#include <cmath>
#include <deque>

using namespace std;

deque <double> curCG;
deque <double> curW;
deque <double> lastCG;
deque <double> lastW;

int main(void)
{
	int h, i, j, n;
	double td;
	double x1, x2;
	cin>>h;
	for (i=0; i<h; i++)
	{
		cin>>n;
		if (0==n && 0!=i)
		{
			cout<<"No"<<endl;
			return 0;
		}
		for (j=0; j<n; j++)
		{
			cin>>x1>>x2;
			if (!lastCG.empty())
			{
				if (lastCG.front()>x1 && lastCG.front()<x2)
				{
					while (lastCG.size()>1 && lastCG[1]>x1 && lastCG[1]<x2)
					{
						lastCG[1] = lastCG[0] + double(lastCG[1]-lastCG[0])*lastW[1]/(lastW[0]+lastW[1]);
						lastW[1] = lastW[0]+lastW[1];
						lastW.pop_front();
						lastCG.pop_front();
					}
					td = ((x2-x1)/2+x1);
					if (lastCG.front()<td)
					{
						curCG.push_back(lastCG.front() + double(td-lastCG.front())*(x2-x1)/(x2-x1+lastW.front()));
						curW.push_back(x2-x1+lastW.front());
					}
					else
					{
						curCG.push_back(td + double(lastCG.front()-td)*lastW.front()/(x2-x1+lastW.front()));
						curW.push_back(x2-x1+lastW.front());
					}
					lastW.pop_front();
					lastCG.pop_front();
				}
				else
				{
					curCG.push_back(x1 + double((x2-x1))/2);
					curW.push_back(x2-x1);
				}
			}
			else
			{
				curCG.push_back(x1 + double((x2-x1))/2);
				curW.push_back(x2-x1);
			}
		}
		if (!lastCG.empty())
		{
			cout<<"No"<<endl;
			return 0;
		}
		else
		{
			lastCG = curCG;
			lastW = curW;
			curCG.clear();
			curW.clear();
		}
	}
	cout<<"Yes"<<endl;
	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -