DS Problem 3
Time Limit: 5 Seconds Memory Limit: 131072 KB
دانشجویان شهرسازی دانشگاه تهران ایدهی جدیدی برای ساختن آپارتمانها دادهاند. به این صورت که اگر قصد ساختن n ساختمان را داشته باشند همهی آنها را در یک خط از شرق به غرب میسازند. اتفاقا این ایدهی نوینشون رو هم پیاده کردهاند و در شهر زیگیل-لند یه شهرک nساختمانی را ساختهاند. اما حالا ساکنان آن از این موضوع شکایت دارند که میخواهند در پشتبام خانهی خود خورشید را موقع غروب ببینند و برای بعضی ساختمانها، ساختمان دیگری در سمت غرب وجود دارد که از آن بلندتر است. حال ساکنان میخواهند متن شکایتی تنظیم کنند و برای مستند بودن این نامه، مسئولان هر ساختمان میخواهند نزدیکترین ساختمان بلندتر از خودشان که در سمت غرب قرار دارد را پیدا کنند. متاسفانه از آنجایی که خودشان حال انجام این کار را ندارند آن را به من واگذار کردهاند، من هم که بلد نبودم، واگذارش میکنم به شما. فقط حواستان باشد که برای اینکه رضایت مشتریها (همان مسئولانی که این پروژه را به من دادهاند) فراهم شود، برنامه شما(!) باید در سریعترین زمان کار کند.
Input
ورودی به صورت استاندارد به برنامه داده میشود. ورودی از چند قسمت تشکیل شده و در خط اول هر قسمت اعداد n (کمتر از 10^7) و m (کوچکتر از n) قرار دارند که n مشخص کنندهی تعداد ساختمانها است. در خط بعد n داده میشوند که به ترتیب ارتفاع ساختمان ۱ تا ساختمان n هستند. (ساختمانها از غرب شمارهگذاری شدهاند، یعنی ۱ غربتر از ۲ قرار دارد) در خط بعد m عدد هستند که هر کدام شمارهی ساختمانی است که نزدیکترین ساختمان بلندتر در چپ را برای آن میخواهیم. عدد صفر در اول یک قسمت (به عنوان n) مشخص کنندهی پایان ورودی است.
Output
در خروجی استاندارد برای هر قسمت باید m عدد در یک خط نوشته شود، برای هرکدام از m ساختمان مشخص شده، شمارهی نزدیکترین ساختمان بلندتر در سمت چپ آن را بنویسید. اگر ساختمان بلندتری در سمت چپ نبود عدد صفر را چاپ کنید.
Sample Input
6 4 1 10 5 2 3 6 1 3 4 6 3 3 8 2 4 1 2 3 0
Sample Output
0 2 3 2 0 1 1Submit