État du stock

Énoncé

Gérard s'est débarrassé des vieilles caisses enregistreuses et dispose maintenant de tout un système moderne, avec lecteurs de code-barres. Un passage rapide d'un produit devant le lecteur et le nom du produit s'affiche instantanément à l'écran à côté de son prix.

Votre ami souhaite utiliser ce système pour maintenir un état complet de son stock de produits et préparer ses commandes en évitant d'avoir à faire l'inventaire toutes les semaines.

Lors de chaque achat ou vente d'un produit, l'opération est stockée dans un fichier, accompagnée du numéro du produit.

Vous devez écrire un programme qui analyse le contenu de ce fichier et détermine la quantité restante de chacun des produits du magasin.

Contraintes

Entrée

Les données du fichier sont transmises à votre programme sur l'entrée standard.

Sortie

Exemple


entrée :

4
5 10 0 4
8
1 1
2 -2
4 2
3 5
3 -2
3 -1
1 4
1 -5

sortie :

5 8 2 6

Commentaires

Gérard dispose au départ de 5 produits de type 1, 10 produits de type 2, aucun produit de type 3 et de 4 produits de type 4.

8 opérations sont effectuées :

1 produit de type 1 est acheté (il y en a alors 6)
2 produits de type 2 sont vendus (il en reste 8)
2 produits de type 4 sont achetés (il y en a alors 6)
5 produits de type 3 sont achetés (il y en a alors 5)
2 produits de type 3 sont vendus (il en reste 3)
1 produit de type 3 est vendu (il en reste 2)
4 produits de type 1 sont achetés (il en a alors 10)
5 produits de type 1 sont vendus (il en reste 5)

Au final, il reste donc :

5 produits de type 1
8 produits de type 2
2 produits de type 3
6 produits de type 4

Solution alternative

nb_produits = int(input())
stock = list(map(int, input().split()))

nb_opérations = int(input())
for _ in range(nb_opérations):
    i_produit, variation = map(int, input().split())
    stock[i_produit - 1] += variation

for quantité in stock:
    print(quantité, end=" ")

Remarques

import sys
def main(input=sys.stdin.readline):
    nb_produits = int(input())
    stock = list(map(int, input().split()))
    
    nb_opérations = int(input())
    for _ in range(nb_opérations):
        i_produit, variation = map(int, input().split())
        stock[i_produit - 1] += variation
    
    for quantité in stock:
        print(quantité, end=" ")
main()