Rješavao sam zadatak sa Infokupa po imenu Golum:
Zadatak: Golum
60 bodova
Priča o „gonetanju“ ili „Kako je Bilbo nadmudrio Goluma“, još se i danas prepričava u Meñuzemlju, uz
vatru u dugim i hladnim zimskim noćima. Nažalost, neke zagonetke i problemi koje je Golum zadavao
Bilbu su se vremenom zaboravili i prestali prepričavati.
U jednoj takvoj zagonetci, Golum bi zamislio riječ (niz velikih slova engleske abecede). Svako slovo u
toj riječi bi zamijenio jednim brojem. Tako dobivene brojeve je redom zapisao jedan pored drugog,
bez razmaka, dobivši na taj način jedan novi broj. Pri tome je slova zamjenjivao brojevima na sljedeći
način:
A 0
B 1
C 2
D 3
E 4
F 5
G 6
H 7
I 8
J 9
K 10
L 11
M 12
N 13
O 14
P 15
Q 16
R 17
S 18
T 19
U 20
V 21
W 22
X 23
Y 24
Z 25
Tako dobiven broj predao je Bilbu koji je trebao otkriti o kojoj se riječi tu radi. Meñutim, bez razmaka u
broju, Bilbo je morao isprobati sve moguće kombinacije. Npr. riječ BCD nakon zamjene slova
brojevima postaje 123, a to je Bilbo mogao shvatiti kao BCD (1 2 3) ali i kao MD (12 3) i BX (1 23).
Naravno, neke od tih kombinacija nisu predstavljale riječ jer samo brojevi od nula do 25 imaju svoje
pripadajuće slovo. Na kraju, Bilbo je nekako shvatio da je Golum sigurno zamislio najdulju riječ koja
se može dobiti iz tog broja. Bilbo takoñer zna da Golum nije zamislio riječ koja počinje s A.
Napiši program koji će na osnovu zadanog broja odrediti i ispisati koliko je riječi moguće kreirati iz
tog broja te koju je to riječ Golum bio zamislio.
ULAZNI PODACI
U prvom retku nalazi se jedan prirodan broj N (1 ≤ N ≤ 9999), broj dobiven opisanim zamjenjivanjem
slova brojevima.
IZLAZNI PODACI
U prvom retku treba ispisati broj riječi koje je moguće kreirati.
U drugi redak treba ispisati riječ koju je Golum zamislio.
BODOVANJE
Posebno se boduje točan ispis svakog retka pri čemu svaki vrijedi ½ ukupne vrijednosti test primjera
Nisam rešio celi zadatak nego samo jedan dio no problem da kada ispitujem unosno polje ono je 835624.
Evo koda:
#include <cstdlib>
#include <iostream>
#include <stdio.h>
#include <ctype.h>
using namespace std;
int main()
{
char slova[26]={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','W','X','Y','Z'};
int niz[4],broj=0,a,polje=0;
cin>>a;
for(; a>0; a /= 10)
{
niz[polje];
++polje;
broj++;
}
cout<<broj<<endl<<niz[0]<<endl; //ovdje polje niz[0] mi je 827384 ili šta već
if(broj==1);
cout<<slova[niz[0]]<<endl;
system("PAUSE");
return 0;
}
Zato ljudi pomagajte .