又被水题虐智商
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 42 43 44 | #include <cstdio> #include <algorithm> using namespace std; int N; struct Car { int X, Y; double L; inline void Read() { scanf ( "%d%d%lf" , &X, &Y, &L); } } C[1003]; int p[1003], o[1003]; double Res[1003], t[1003]; inline bool cmp( int a, int b) { return C[a].X > C[b].X; } int main() { scanf ( "%d" , &N); for ( int i = 1; i <= N; i ++) C[o[i] = i].Read(), p[i] = C[i].Y; sort(p + 1, p + N + 1), sort(o + 1, o + N + 1, cmp); for ( int i = 1; i <= N; i ++) { int Cur = o[i], Pos = C[Cur].X; double T = 0; for ( int j = 1; j <= N; j ++) if (p[j] >= Pos) { T += ( double )(p[j] - Pos) / C[Cur].L; T = t[j] = max(t[j], T), Pos = p[j]; if (Pos == C[Cur].Y) { Res[Cur] = T; break ; } } } for ( int i = 1; i <= N; i ++) printf ( "%.2lf\n" , Res[i]); return 0; } |