1 Uzdevuma formulējums
Kādā valstī, kuras iedzīvotāju skaits ir vairāki miljoni, tika ieviesta gada ienākumu deklarēšana. Iedzīvotājiem laika periodā no 1.janvāra līdz 1.aprīlim nepieciešams iesniegt ienākumu deklarācijas par iepriekšējo gadu. Vienkāršības pēc pieņemsim, ka deklarācija satur tikai iedzīvotāja personas kodu un ienākumu summu veselās naudas vienībās.
Personas kods ir tieši 10 ciparu virkne, kur pēdējais cipars ir personas koda kontrolsumma. Kontrolsumma ir personas koda pirmo 9 ciparu reizinājuma pēdējais cipars, t.i. reizinājuma dalījums pēc moduļa 10. Piemēram, 1234567890 è 1*2*3*4*5*6*7*8*9 = 362’880 un kontrolcipars ir 0. Savukārt naudas summa ir vesels pozitīvs skaitlis (ieskaitot 0), kas nav lielāks par 1’000’000’000. Deklarācijas ar nepareizu personas kodu netiek pieņemtas (kļūdains kontroles cipars).
Ienākuma deklarācijas pārbauda speciālas inspekcijas ierēdņi, kas sāk darbu jau 1.janvārī. Pārbaude tiek veikta tikai daļai no visām deklarācijām. Pārbaudāmās deklarācijas izvēlas pēc sekojošiem principiem. Gada sākumā tiek izvēlēts skaitlis X, kas nozīmē, ka tiks kontrolēta katra X-tā deklarācija to iesniegšanas secībā. Bez tam jebkurā brīdī inspektori var paņemt dotajā brīdī pēdējo (iesniegšanas secībā) nepārbaudīto deklarāciju, kuras personas koda kontrolcipars ir Y. Cipars Y atšķirībā no X nav fiksēts gada sākumā un brīvi izvēlēts katrā brīdī.
Izveidot programmu, kas kontrolē saņemto deklarāciju personas kodus, uzskaita korektās deklarācijas, un pēc inspektoru pieprasījuma izsniedz tiem kārtējo kontrolējamo deklarāciju.
Persona var iesniegt atkārtotu deklarāciju norādot arī citu summu. Šī iesniegšana netiek uzskatīta par kļūdu un deklarācija ir jāreģistrē.
2 Ieejas fails
Pirmajā rindiņā ir vesels skaitlis...
…