真搞不懂为什么我考试的时候会写炸这道题,就是一个简单的模拟
下面贴上失败的滑雪的代码
注释里的是挖掘机的代码
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
#include<bits/stdc++.h> using namespace std; double s=0,tot=0,v1,st,sd; long long n,t[200001],d[200001],topt=0,topd=0,v=1; long long m; int main(){ // scanf("%lld%lld",&n,&m); scanf("%lld",&n);m=1000; for(int i=1;i<=n;i++){ char op[6]; scanf("%s",op); if(op[0]=='T')scanf("%lld",&t[++topt]); else scanf("%lld",&d[++topd]); } sort(t+1,t+1+topt); sort(d+1,d+1+topd); d[topd+1]=0x7f7f7f7f7f7f7f7f; t[topt+1]=0x7f7f7f7f7f7f7f7f; int nowt=1,nowd=1; while(nowt<=topt||nowd<=topd){ v1=1.0/v; st=s+(t[nowt]*1.0-tot)*v1; sd=d[nowd]; if(st<sd){ s=st; tot=t[nowt++]; } else { tot+=(sd-s)/v1; s=sd; nowd++; } v++; } tot+=(m-s)/(1.0/v); // cout<<(long long)tot<<endl; printf("%.0f",tot); return 0; } |