#include #include #include #include using namespace std; ifstream fin("rainfall.in"); const int max_n=10; const double step=1e-4; const double Zero=1e-6; struct TBoard { double x,l,v; }; struct TSegment { double x,y; }; TBoard Board[max_n]; TSegment Segment[max_n]; int n; double w,t,v,ans; void input_data() { int i; fin>>n>>w>>t>>v; for (i=0; i>Board[i].x>>Board[i].l>>Board[i].v; } int Compare(const void *a,const void *b) { if (((TSegment *)a)->x<((TSegment *)b)->x) return -1; else if (((TSegment *)a)->x==((TSegment *)b)->x) return 0; else return 1; } void solve() { int i,j; double now,max,tot_len; ans=0; for (now=0; now<=t; now+=step) { for (i=0; imax) max=Segment[j].y; j++; } tot_len+=max-Segment[i].x; i=j; } ans+=tot_len*step; for (i=0; i0 && Board[i].x+Board[i].l+Zero>=w) Board[i].v=-Board[i].v; if (Board[i].v<0 && Board[i].x<=Zero) Board[i].v=-Board[i].v; Board[i].x+=Board[i].v*step; } } ans=(w*t-ans)*v; } void output_data() { cout<