2112 - Tablita

De la Universitas MediaWiki

Adrian participă la o expediţie, împreună cu colegii lui. La un moment dat, copiii descoperă, lângă un copac, 5 tăbliţe vechi. Primele 4 tăbliţe sunt inscripţionate complet. Prima tăbliţă conţinea textul : “Grupa 1 conţine numărul 1”, a doua tăbliţă avea textul : „Grupa 2 conţine numerele 2 şi 3”, a treia tăbliţă avea textul: „Grupa 3 contine numerele 4, 5 şi 6” , a patra tăbliţă avea textul: „Grupa 4 conţine numerele 7, 8, 9 şi 10.” Pe următoarea tăbliţă găsită era înscris un singur număr, celelalte numere şi numărul grupei erau şterse. Adrian le solicită colegilor lui să descopere ce grupă era scrisă pe a cincea tabliţă găsită.

Cerința

Descoperiţi regula de inscripţionare a tăbliţelor şi pentru numărul găsit pe a cincea tăbliţă, determinaţi din ce grupă face parte.

Date de intrare

Fişierul de intrare tablita.in conţine pe prima linie un număr natural N, ce reprezintă numărul care era înscris pe a cincea tăbliţă descoperită de Adrian.

Date de ieșire

Fişierul de ieşire tablita.out va conţine un număr natural ce reprezintă grupa în care se află numărul N, înscris pe a cincea tabliţă găsită.

Restricții și precizări

Un număr înscris pe o tăbliţă este nenul şi conţine cel mult 8 cifre;

Exemplu:

tablita.in 100

tablita.out 14

Explicație

Numărul 100 ce apare pe a cincea tăbliţă face parte din grupa 14.

Rezolvare

def validare(n):
    if not (1 <= n <= 100_000_000):
        return False
    return True


def tablita(n):
    x, cnt = 1, 1
    while x < n:
        cnt += 1
        x += cnt

    with open("tablita.out", "w") as fout:
        fout.write(str(cnt))


if __name__ == '__main__':
    fin = open("tablita.in")
    fout = open("tablita.out", "w")

    n = int(fin.readline())
    if validare(n):
        print("Date de intrare valide")
        tablita(n)
    else:
        print("Date de intrare invalide")

    fin.close()
    fout.close()