اولین باره که به کاهو میای؟ راهنمای سایت رو حتما بخون!
وبسایت مسابقههای برنامه نویسی
یافتن کوتاه ترین دور در گراف ساده
کد مساله هشت وزیر با استفاده از الگوریتم ژنتیک
مرجع فارسی برای الگوریتم های هندسی و 2sat
نظریه اعداد لازم برای المپیاد کامپیوتری ها
برای مرحله سوم، تا چه سطحی باید برنامه نویسی بلد باشیم؟
اولین جمله از دنباله ی فیبوناچی که 1000رقم داشته باشد چیست؟
چه جاجهایی برای المپیاد کامپیوتر خوب هستند؟
در این قسمت میتونی به یک پرسش پاسخ بدی. اگه میخوای در مورد پرسش بحث و اظهار نظر کنی از قسمت «ثبت نظر» استفاده کن.
پاسخت رو دقیق و کامل بنویس، از عکس استفاده کن و اگه لازمه به منابع (کتاب یا سایت) ارجاع بده.
اگه پرسش یا پاسخها مفید هستند حتما بهشون رای بده تا پرسشها و پاسخهای خوب مشخص بشن.
توی قسمت پیشنمایش میتونی ببینی متنی که نوشتی چجوری روی سایت دیده میشه.
خیلی مهم: برای اینکه به خط بعد بری باید دوتا Enter بزنی.
میتونی از تگهای معمولی و سادهی html هم استفاده کنی.
با دکمههایی که بالای ویرایشگر قرار دارند کلی کار میشه کرد. از عکسگذاشتن بگیر تا لیست شمارهدار. حتما امتحانشون کن.
برای نوشتن علائم ریاضی میتونی از Mathjax استفاده کنی.
راهنمای Mathjax رو از سایت
math.stackexchange
بخون.
برای نوشتن عبارت ریاضی وسط جمله، اون عبارت رو بین دوتا $ قرار بده.
برای نوشتن عبارت ریاضی تو یه خط جدید اون رو بین دوتا $$ قرار بده.
کوئری ساده
علی اقا پس از کار در شکرستان بسیار مشهور شده و الان درمیان مردم از شهرت زیادی برخوردار عه ! روزی qq تا از مردم شهر پیش علی اقا میان و بهش کار میدن ! (مردم وقتی میخوان کار بدن به این صورت عمل میکنن : به علی اقا میگن که از روز ss ام تا روز ff ام پیش ما کار داری ! ینی مثلا میگن از روز ۳ تا ۵ بیا پیش ما ) علی اقا پس از این اتفاق نیاز پیدا میکنه که برنامه nn روز اینده خودشو داشته باشه ( ینی بدونه توی روز ii ام دقیقا چند تا کار داره ) به اون تو حل این مساله کمک کنین .
ورودی در خط اول ورودی طبیعی nn که نشان دهنده تعداد کل روز های مورد بررسی است آمده و در خط دوم یک عدد qq که نشان دهنده تعداد مردم با کار است آمده و در qq خط بعد در هر خط دو عدد ss و ff آمده ک نشان دهنده شروع و پایان کار ان شخص با علی است خروجی خروجی برنامهی شما باید برنامه n روز آینده علی را چاپ کند.
مثال ورودی نمونه ۱ 5 2 1 2 2 4 خروجی نمونه ۱ 1 2 1 1 0 تحلیل خروجی : در روز اول یک کار دارد در روز دوم دو کار ( یکی مال نفر شمراه یک و یکی مال نفر شماره دو ) در روز سوم و چهارم یک کار در روز پنجم بیکار است .
ورودی نمونه ۲ 10 8 5 10 2 6 1 3 1 5 1 7 3 10 3 7 6 9 خروجی نمونه ۲ 3 4 6 5 6 6 5 3 3 2 راهنمایی : یک ارایه به طول n تعریف کنید و ابتدا مقدار تمامی خونه های اونو صفر بزارید . بعدش توی هر کوئری به مقدار خونه های بین بازه یک واحد اضافه کنین .
سلام با O(n) می توانید درست کنید بدین طور که هر وقت start و finish دادند finish را ++ و start را -- می کنی و در نهایت از خانه n-1 شروع می کنی تا 1 و هر بار cnt خانه را += cnt خانه بعدش می کنی.
int main() { int n, q, l, r; cin >> n >> q; int A[n]; for(int i = 0; i < n; i++) A[i] = 0; while(q--) { cin >> l >> r; l--; r--; if(l)A[l-1]--; A[r]++; } for(int i = n-2; i >= 0; i--) A[i] += A[i+1]; for(int i = 0; i < n; i++) cout << A[i] << ' '; return 0; }
دلیل آن هم این است وقتی از آخر به اول حرکت می کنی باز مد نةر را فقط تاثیر داده ای
خیلی ممنون من تو یه قسمتی خودم نوشتم کد شما رو اشتباه کرده بودم مشکلم رفع شد
2021-04-11 06:39:09 -0600 المیرا