Vitesse : lecture rapide d'entiers en vertical

L'exercice est simple : lire le plus vite une suite d'entiers donnés de manière verticale.

Il n'est pas possible de valider ce sujet au vu des contraintes de temps, votre objectif est uniquement d'obtenir le plus de points possibles. A titre indicatif, voici les scores maximaux obtenus pour les langages supportés sur le site, à vous d'essayer d'égaler ou de battre ces scores (y compris le temps, indiqué pour le dernier test réussi). Si vous battez un score, prévenez Loïc à loic.fevrier [at] france-ioi.org !

Nous vous demandons de mettre au point vos algos chez vous, sans surcharger le serveur, générer des fichiers tests est facile.


Meilleurs scores, pour chaque langage.

Un classement plus détaillé sera peut-être mis un jour, pour le moment, voici le meilleur score obtenu dans chaque langage.

Langage : Auteur : Score maximum : Temps (pour le dernier test réussi) : Entiers/seconde :
C/C++ Yann Boucher (yboucher490) 100 (16/16) 0.06s 54M
Java Guillaume Le Blanc (gle_blanc) 100 (16/16) 0.02s 163M
Pascal Guillaume Le Blanc (gle_blanc) 94 (15/16) 0.1s 16.21M
OCaml Guillaume Le Blanc (gle_blanc) 88 (14/16) 0.08s 6.48M
Python Clément Beauseigneur (bc) 63 (10/16) 0.1s

A titre indicatif, une solution basée sur "scanf" en C, fait un score de 75 avec 2.3M entiers lus par seconde.

Limites de temps et de mémoire (Python)

  • Temps : 0,1 s sur une machine à 1 GHz.
  • Mémoire : 64 000 ko.

Contraintes

Les tests démarrent à 100 entiers et on multiplie par 2 à chaque fois.

Chaque entier est dans l'intervalle [-10e5, 10e5] et à tout moment la somme partielle tient dans un entier 32 bits signé.

Entrée

  • Sur la première ligne, un entier nbEntiers
  • Sur les nbEntiers lignes suivantes, un seul entier

Sortie

La somme de tous les entiers.

Exemple

entrée :

4
10
5
3
1

sortie :

19

Source : https://www.france-ioi.org/