📄 1311.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 + -