题解 P2338 【[USACO14JAN]失败的滑雪Bessie Slows Down】
Starria的脑残粉
2017-06-29 10:32:17
```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;//输出貌似是取整数部分的所以要四舍五入
}
```