QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 256 MB Total points: 100

#22387. Remboursement

Statistics

«Ne sois ni emprunteur ni prêteur.» Bessie regrette de ne pas avoir suivi ce conseil ! Elle a emprunté ou prêté à chacun de $N$ amis, $(1 \le N \le 100,000)$, numérotés $1,\ldots,N$.

Le jour du remboursement arrive. On lui doit plus qu'elle ne doit aux autres. Les vaches sont alignées, la vache $i$ à $i$ mètres de la grange. Elle parcourt la file, recouvrant ses créances et remboursant ses dettes.

Elle peut réclamer son argent à toute vache qui lui doit. Dès qu'elle en a assez pour une partie ou toutes ses dettes, elle peut verser l'argent récemment collecté aux créancières. La vache $i$ lui doit $D_{i}$, $(-1,000 \le D_{i} \le 1,000; D_{i} \ne 0)$. Un montant négatif signifie que Bessie doit à cette vache, et non l'inverse.

Elle part de la grange, position 0. Quelle distance minimale pour tout collecter et tout rembourser ? Elle doit terminer au bout de la file.

Entrée

  • Ligne 1 : entier $N$.
  • Lignes $2,\ldots,N+1$ : ligne $i+1$, un entier $D_{i}$.

Sortie

  • Ligne 1 : un entier, la distance totale en mètres nécessaire pour régler avec chaque vache.

Exemples

Entrée 1

5
100
-200
250
-200
200

Sortie 1

9

Remarque

Trois vaches doivent à Bessie ; elle doit à deux. Elle finit avec 150 d'argent.

      100  -200  250 -200  200
 |     |     |    |    |    |
 ***>**+**>*****>**+
                   *            < Bessie a 350
             -**<***
             *                  < Bessie a 150
             ***>****>****>**+
                             *  < Bessie a 350
                       -**<***
                       *     
                       ***>***  < Bessie finit avec 150*

À gauche : grange.

Auteur du problème : Jarrah Lacko, 2009

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.