Olimpiada de probleme în programare cu o soluție

În fișierul de intrare:
Prima linie este alfabetul statului: zece litere aranjate în ordine crescătoare de numere fără spații.
A doua linie este numărul de numere (N <= 255)
Următoarele N linii - că numerele inițiale (unul pe fiecare rând, fiecare nu mai mult de 255 de cifre).
Formatul fișierului de ieșire:
cuvinte cheie

Soluția din Pascal:
PROGRAM VISA;
var n, a, d, i, suma r: longint;
k. Array [0..11] de longint;
c: matrice [1..255] de longint;
kod: array [1..255] de longint;
alf: șir;
f, f1: text;
începe
atribuie (f, 'visa.dat');
resetați (f);
citește (f, alf);
readln (f, n);
pentru i: = 1 până la n readn (f, k [i]);
i: = 1;
d: = 1;
pentru i: = 1 până la n începe
repeta
sumă: = 0;
în timp ce k [i] div 10 <> 0 începe
dacă d> 1 atunci
k [i]: = k [i] div 10;
d: = d + 1;
c [i]: = k [i] mod 10;
suma: = suma + c [i];
se încheie;
k [i]: = suma;
d: = 1;
până la suma <9;
kod [i]: = suma;
se încheie;
PENTRU I: = 1 la N DO KOD [I]: = KOD [I] +1;
ASSIGN (f1, "visa.sol");
rescrie (f1);
pentru i: = 1 la n do scriere (F1, alf [kod [i]]);
închide (f);
închide (f1);
end.

A doua opțiune
program VIZA;
eticheta 1;
var w, x, r: string; i, j, s, s1, n, cod, count: integer; f, f1: text; alf: array [0..9] de șir [10];
începe
aloca (f, 'VIZA.dat');
rescrie (f);
închide (f);
aloca (f1, 'VIZA.rez');
rescrie (f1);
închide (f1);
scrieți ("vvedite kol-vo chifr");
citit (număr);
alf [0]: = 'A';
alf [1]: = "G";
alf [2]: = "E";
alf [3]: = 'I';
alf [4]: ​​= 'K';
alf [5]: = 'L';
alf [6]: = 'M';
alf [7]: = 'O';
alf [8]: = 'P';
alf [9]: = 'T';
pentru i: = 0 până la 9 nu începe
(f, 'VIZA.DAT'); adăugați (f);
scrie (f, alf [i]);
închide (f);
se încheie;
pentru i: = 1 pentru a număra nu începe
scrieți ("vvedite chislo");
readln (x);
1: S: = 0;
pentru J: = 1 la lungime (x)
începe
r: = x [j];
val (r, n, cod);
s: = s + n;
scrie ('s =', s);
se încheie;
dacă s> 9 începe apoi str (s, x); ajunge la 1 sfârșit;
scrie ('', alf [s]);
aloca (f1, 'VIZA.rez');
adăugați (f1);
scriteln (f1, alf [s]);
închide (f1)
se încheie;
end.

Articole similare