Module: جستجوی سه تایی


Problem

3 /9


مسابقه دوچرخه سواری

Problem

دوچرخه سوارانی که در مسابقه جاده ای شرکت می کنند، در نقطه ای از زمان که به آن ابتدایی می گویند، در نقاط دور از نقطه شروع با x1، x2، .. .، xn متر (n – تعداد کل دوچرخه سواران). هر دوچرخه سوار با سرعت ثابت خود v1، v2، ...، vn متر در ثانیه حرکت می کند. همه دوچرخه سواران در یک جهت حرکت می کنند.
 
یک گزارشگر مسابقه می‌خواهد نقطه زمانی را تعیین کند که در آن فاصله بین دوچرخه‌سوار پیشرو در مسابقه و آخرین دوچرخه‌سوار حداقل باشد تا از همه شرکت‌کنندگان مسابقه دوچرخه‌سواری به طور همزمان از هلیکوپتر عکس بگیرد.
 
لازم است برنامه ای بنویسید که با توجه به تعداد دوچرخه سواران n، موقعیت های اولیه داده شده دوچرخه سواران x1، x2، ...، xn > و سرعت آنها v1، v2، ...، vn، زمان t را محاسبه می کند که در آن فاصله l بین دوچرخه سوار پیشرو و دنباله دار حداقل است.
 
ورودی
خط اول فایل ورودی حاوی عدد صحیح n – تعداد دوچرخه سواران.
 
n خط بعدی هر کدام شامل دو عدد صحیح است: xi – فاصله از شروع تا سومین دوچرخه سوار در زمان اولیه (0 ≤ xi ≤  107 ) و vi – سرعت آن (0 ≤ vi ≤ 10 7 ).
 
خروجی
خروجی دو عدد واقعی به فایل خروجی ضروری است: t – زمان بر حسب ثانیه سپری شده از لحظه اولیه تا لحظه ای که فاصله برحسب متر بین لیدر و تریلر حداقل باشد، l – فاصله دلخواه.
 
اعداد t و l باید خطای مطلق یا نسبی بیش از 10 نداشته باشند–6 که به معنی زیر است. عدد نمایش داده شده برابر با x و در پاسخ صحیح برابر با y باشد. در صورتی که مقدار عبارت |x – y| /  max(1,  |y| )  از 10–6 تجاوز نمی کند.
 
کارهای فرعی و سیستم امتیازدهی
این وظیفه شامل چهار کار فرعی است. برای ارزیابی هر کار فرعی، از گروه تست های خود استفاده می شود. امتیاز برای یک کار فرعی فقط در صورتی اعطا می شود که تمام تست های این گروه با موفقیت انجام شود.
  <بدن>
ورودی خروجی
3
0 40
30 10
40 30
1 30
5
90 100
100 70
100 70
110 60
120 35
0.5 5.0000000000000

 
المپیادهای انفرادی، المپیاد همه روسیه برای دانش آموزان، مرحله نهایی، 2011، مسئله F