Az ISBN (International Standard Book Number) azonosítók olyan tízjegyű számok, amelyeket könyvek azonosítására használnak. A szám tizedik számjegye lehet X karakterrel leírt 10-es is. A könnyebb olvashatóság végett a szám leírásában kötőjelek és szóközök szerepelhetnek, lényegi jelentőségük nincsen.
Valójában az első kilenc számjegy azonosítja a könyvet. A tizedik számjegy validálja, hogy az első kilenc számjegy helyes-e. Mivel a checksum algoritmus 11-gyel vett oszthatóságot vizsgál, szükséges lehet a 10-es ellenőrző számjegy, amit X jelöl az ISBN számban.
Az ISBN számok ellenőrzésére az alábbi checksum algoritmus használható: két részletösszeg számítandó az ISBN számból: s1 és s2. Az s1 az ISBN számjegyeinek részletösszegei, míg s2 az s1 részletösszege. Az ISBN érvényes, ha az utolsó s2 részletösszeg osztható 11-gyel.
Példa: 0-13-162959-X (Tanenbaum: Computer Networks)
0 1 3 1 6 2 9 5 9 10 (Az ISBN számjegyei) 0 1 4 5 11 13 22 27 36 46 (s1 részletösszegek) 0 1 5 10 21 34 56 83 119 165 (s2 részletösszegek)Mivel a 165 osztható 11-gyel, az azonosító érvényes.
Feladat: a standard inputról beolvasott azonosítókról eldönteni, hogy
a fenti algoritmus alapján érvényes azonosító-e. Minden sorban pontosan egy
azonosító szerepel. A standard output-on
"Valid" jelenti az érvényes azonosítót, "Invalid" jelenti az érvénytelen
azonosítót. A standard input-on az eof jelzi, hogy nincs több ellenőrizendő
azonosító.
Példa Input: 0-13-162959-X 1-234-5678-90
Példa Output: Valid Invalid
A feladat megoldásához csak a szabványos C++ eszközei használhatóak!
Beadási határidő: 2012. április 25.