mariuxd
Vartotojas
 Reitingas: 0
|
Ats:Informatikos olimpiados III turo 1 etapas - 07/03/08 17:46
Buvo seniau šitoj temoj nemažai prirašyta. 
Tarkim, maždaug taip galėjo atrodyti ta programa. Čia nepilnas sprendimas, randa tik ar sprendimas egzistuoja, bet nesunku ją papildyti.
f[i, k, s] = true, jeigu galima sudaryti skaičių s, pradedant i-tuoju skaitmeniu, baigiant k.
| Code: | ilgis := duoto skaičiaus ilgis;
užpildyt masyvą f false;
for i := 1 to ilgis do
f[i, i, skaitmuo(i)] := true;
for i := 1 to ilgis do
for k := i to ilgis-1 do
for s := 0 to 100 do
if f[i, k, s] then
f[i, k+1, s+skaitmuo[k+1]] := true;
f[i, k+1, s-skaitmuo[k+1]] := true;
f[i, k+1, s*skaitmuo[k+1]] := true;
f[i, k+1, s/skaitmuo[k+1]] := true;
for i := 1 to ilgis-1 do
for s := 0 to 100 do
if f[1, i, s] and f[i+1, ilgis, s] then
spausdinti rezultatą;
|
Žinutę redagavo: mariuxd, , 2007/03/08 17:47
Žinutę redagavo: mariuxd, , 2007/03/08 17:51
Žinutę redagavo: mariuxd, , 2007/03/08 17:52
|