QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 1024 MB Total points: 100 Hackable ✓

#9686. חיילים

Statistics

יש $n$ חיילים העומדים בשורה. בתחילה, לחייל שמספרו $i$ יש $a_i$ נקודות חיים.

באפשרותך לבצע מספר התקפות כלשהו, כולל אפס התקפות. בכל התקפה אפשר לבחור קטע $[l,r]$ ($1\le l\le r\le n$), ולהפחית ב-$1$ את נקודות החיים של כל החיילים שמספריהם בקטע זה. כל התקפה עולה $m$.

לאחר סיום כל ההתקפות, אם לחייל $i$ נותרו לכל היותר $0$ נקודות חיים, מתקבל רווח $b_i$. מאחר שבין החיילים יש גם אויבים וגם ידידים, $b_i$ עשוי להיות שלילי. שים לב שהרווח עבור כל חייל מתקבל פעם אחת בלבד.

עליך למצוא תוכנית התקפה הממקסמת את סכום הרווחים פחות סכום העלויות. באופן פורמלי, נניח שבתוכנית שלך בוצעו $k$ התקפות, ומספר נקודות החיים הסופי של החייל $i$ הוא $c_i$. נגדיר $p_i=1$ אם $c_i\le0$, ו-$p_i=0$ אחרת. עליך למקסם את $\left(\sum_{i=1}^{n}p_i\times b_i\right)-m\times k$. בסופו של דבר, יש להחזיר רק את הערך המרבי של סכום הרווחים פחות סכום העלויות.

קלט

יש לקרוא את הנתונים מהקובץ soldier.in.

בבעיה זו יש מספר מקרי בדיקה.

השורה הראשונה של הקלט מכילה מספר שלם חיובי $T$, מספר מקרי הבדיקה.

לאחר מכן ניתנים מקרי הבדיקה בזה אחר זה. עבור כל מקרה בדיקה:

השורה הראשונה מכילה שני מספרים שלמים $n,m$, מספר החיילים ועלותה של התקפה אחת, בהתאמה.

כל אחת מ-$n$ השורות הבאות מכילה שני מספרים שלמים $a_i,b_i$, המתארים את נקודות החיים ואת הרווח של כל חייל, בהתאמה.

פלט

יש לכתוב את הפלט לקובץ soldier.out.

עבור כל מקרה בדיקה, יש להדפיס שורה ובה מספר שלם אחד: הערך המרבי של סכום הרווחים פחות סכום העלויות שניתן להשיג מבין כל התוכניות האפשריות.

דוגמאות

קלט 1

3
5 1
1 3
2 5
1 4
3 3
5 1
3 2
1 5
1 -100
1 5
3 2
1 5
1 -1
1 5

פלט 1

12
6
7

הסבר

במקרה הבדיקה הראשון, תוכנית מיטבית אחת היא לבצע שלוש התקפות, בקטעים $[1,5]$, $[2,4]$, $[4,4]$, בהתאמה. סדרת נקודות החיים הסופית היא $(0,0,-1,0,4)$, הרווח הוא $b_1+b_2+b_3+b_4=15$, והעלות היא $3\times1=3$. ניתן להוכיח שאין תוכנית טובה יותר, ולכן הפלט הוא $15-3=12$.

במקרה הבדיקה השני, תוכנית מיטבית אחת היא לבצע שתי התקפות, בקטעים $[1,1]$ ו-$[3,3]$.

במקרה הבדיקה השלישי, תוכנית מיטבית אחת היא לבצע התקפה אחת בקטע $[1,3]$.

תתי־משימות

נסמן ב-$\sum n$ את סכום ערכי $n$ של כל מקרי הבדיקה בקובץ בדיקה אחד. עבור כל נתוני הבדיקה מובטח:

  • $1\le T\le5\times10^5$;
  • $1\le n,\sum n\le5\times10^5$, $1\le m\le10^9$;
  • $\forall 1\le i\le n$, $1\le a_i\le10^9$, $-10^9\le b_i\le10^9$.
מספר תת־משימה ניקוד $\sum n\le$ תכונה מיוחדת
1 5 $5\times10^5$ $\forall 1\le i\le n,\ b_i\ge0$
2 15 $5000$ $\forall 1\le i\le n,\ a_i\le5000$
3 20 $5000$ ללא
4 20 $10^5$ ללא
5 25 $2\times10^5$ ללא
6 15 $5\times10^5$ ללא

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
EditorialOpen Official EditorialQingyu- Download

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.