Skip to content

Instantly share code, notes, and snippets.

@mqu
Last active December 15, 2015 13:19
Show Gist options
  • Save mqu/5266405 to your computer and use it in GitHub Desktop.
Save mqu/5266405 to your computer and use it in GitHub Desktop.
solution for codingame tutorial 1 : http://www.codingame.com/cg/#!training in ruby.
# http://www.codingame.com/ide/?target=clogin&s=1&id=719077d960bd6fa93faa2bf63cb0fff80ed64#!test:81047:true:%2523!list
=begin
Ce premier exercice a pour seul objectif de vous familiariser avec la lecture depuis l'entrée standard et l'écriture dans la sortie standard.
Pourquoi est-ce si important ? Parce que tous les exercices CodinGame suivent ce protocole et que ça serait dommage que vous perdiez du temps la dessus !
ENTRÉE :
Ligne 1 : Deux entiers n1 et n2, séparés par un espace
Ligne 2 : Une chaîne de longueur s, contenant que des caractères ASCII (s ne prend pas en compte le retour chariot final !)
Ligne 3 : Deux mots w1 et w2, séparés par un espace et composés uniquement de caractères ASCII
SORTIE :
Afficher w1 si n1 + n2 est égal à s, sinon afficher w2.
EXEMPLE 1 :
Entrée
22 -10
hello world!
ok nok
Sortie
ok
EXEMPLE 2 :
Entrée
2 1
wrong sum
ok nok
Sortie
nok
Retrouvez des solutions à cet exercice, dans différents langages de programmation, sur cette page : http://codingame.com/readwrite.html
Mémoire RAM disponible : 256Mo
Durée maximum d’exécution : 6 secondes
Le programme doit lire les entrées depuis l’entrée standard
Le programme doit écrire la réponse dans la sortie standard
Le programme doit fonctionner dans l’environnement de test fourni
=end
# read data from STDIN or from FILES passed as args
# and split as lines
lines=ARGF.read.split("\n")
# compute n1, n2, s, w1, w2 (ruby way)
n1,n2 = lines[0].split(' ').map { |v| v.to_i}
w1,w2 = lines[2].split(' ')
s=lines[1]
# output w1 or w2 taking care about string size and sum of n1+n2
puts (s.size == n1+n2)? w1 : w2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment