题解 P2338 【[USACO14JAN]失败的滑雪Bessie Slows Down】

Starria的脑残粉

2017-06-29 10:32:17

Solution

```cpp //这个难度有毒啊其实是一道pj难度的模拟题 #include<bits/stdc++.h> using namespace std; int n,x,n1,n2,l,r; double a[100000],b[100000],y,z; char c; int main(){ ios::sync_with_stdio(false); cin>>n; for (int i=1;i<=n;i++){ cin>>c>>x; if (c=='T')a[++n1]=x; else b[++n2]=x; } sort(a+1,a+1+n1);sort(b+1,b+1+n2); x=1;l=1;r=1;//x 1/速度,y 路程,z 时间 for (int i=1;i<=n;i++)//然后是大力模拟拉 if ((r>n2||(b[r]-y)*x+z>=a[l])&&(l<=n1)){ if ((a[l]-z)/x+y>1000)break; y+=(a[l]-z)/x;z=a[l];x++;l++; } else{ if (b[r]>1000)break; z+=(b[r]-y)*x;y=b[r];x++;r++; } cout<<int((1000-y)*x+z+0.499999)<<endl;//输出貌似是取整数部分的所以要四舍五入 } ```