magic6 pe campion sau magic in OJI 2011

Ca si orice alta activitate, programarea depinde mult de factorul uman. Hai sa vedem ce ne face pe noi sa butonam.

magic6 pe campion sau magic in OJI 2011

Postby MrKasz123 » 09 Jan 2012, 23:12

Salut! Sunt nou pe forum si am nevoie de ajutor la aceasta problema
...Restricţii

• 1 ≤ n ≤ 1000
• Caracterele sunt doar cifre sau litere mici ale alfabetului englez.
• Printre cele n caractere se află întotdeauna cel puțin o literă şi cel puţin o cifră.
• Numărul magic începe întotdeauna cu o cifră diferită de zero.

Exemplu:
date.in:
6
c 3 2 b f f

date.out:
CBFF
23

Dupa cum se observa din exemplu trebuie unite caracterele si facute mari , de asemenea nu vor fi in sir caractere deja unite , trebuie sa unim cifrele din sir si sa formam cu ele un minim
Dupa cum se stie , putem face mari sau mici caracterele prin +32, -32
Vom avea doi vectori , unul in care vom tine cifrele, le vom aipi si vom face minimul, altul pe care il vom declara in tipul char si in care vom retine caracterele dar marea mea problema este din start, cum separ un sir in doi vectori
http://campion.edu.ro/arhiva/index.php?page=problem&action=view&id=1248
daca nu ati inteles cititi problema originala...
0,0p / 0 votes
Munca lungeste viata, lenea o scurteaza.

Nu lasa pe maine ce poti face azi.

Munca intareste pe om, lenea il ofileste.
User avatar
MrKasz123
Bit
 
Joined: 09 Jan 2012
Location: Bucharest
Status: 0

Re: magic6 pe campion sau magic in OJI 2011

Postby eni4ever » 09 Jan 2012, 23:16

Grosier : iei fiecare element, îi verifici tipul și-l adaugi în vectorul corespunzător. Auzi, dacă nu arde casa, nu vrei să ni te prezinți. Nu de alta, dar mă simt oarecum stânjenit când vorbesc cu străinii.
0,0p / 0 votes
Image

"Rațiunea vine în umbre scurte numite suferințe." Victor Adăscăliței
"Bender: Anything less than immortality is a complete waste of time.
Zoidberg: Then suicide it is! Step into my office ..." Futurama S06E06
User avatar
eni4ever
DWord
 
Joined: 03 Jan 2010
Location: Timișoara
Status: 57.83

Re: magic6 pe campion sau magic in OJI 2011

Postby MrKasz123 » 09 Jan 2012, 23:34

Cum ii verific tipul, si adaugarea unui element intr-un vector se face prin mutarea fiecarui element cu 1 in fata si se pune elementul pe pozitita i?
0,0p / 0 votes
Munca lungeste viata, lenea o scurteaza.

Nu lasa pe maine ce poti face azi.

Munca intareste pe om, lenea il ofileste.
User avatar
MrKasz123
Bit
 
Joined: 09 Jan 2012
Location: Bucharest
Status: 0

Re: magic6 pe campion sau magic in OJI 2011

Postby eni4ever » 09 Jan 2012, 23:35

Hai că o luăm altcumva : postează te rog ce ai reușit să faci și pornim de acolo.
0,0p / 0 votes
Image

"Rațiunea vine în umbre scurte numite suferințe." Victor Adăscăliței
"Bender: Anything less than immortality is a complete waste of time.
Zoidberg: Then suicide it is! Step into my office ..." Futurama S06E06
User avatar
eni4ever
DWord
 
Joined: 03 Jan 2010
Location: Timișoara
Status: 57.83

Re: magic6 pe campion sau magic in OJI 2011

Postby MrKasz123 » 09 Jan 2012, 23:54

  1. #include<stdio.h>
  2. int main()
  3. {
  4. freopen("magic6.in","r",stdin);
  5. freopen("magic6.out","w",stdout);
  6. char c[101];
  7. int pp,n,v[101],nr,cnr,i,c2,nr=0,aux;
  8. scanf("%d",&n);
  9. //citirea vectorilor ce trebuie separati c si v
  10. for(i=1;i<=n;i++)
  11.     c[i]=c[i]-32;//fac toate elementele majuscule
  12. for(i=1;i<=n;i++)
  13.     for(j=1;j<=n;j++)
  14.         if(v[i]>v[j])
  15.             {aux=v[i];
  16.             v[i]=v[j];
  17.             v[j]=aux;
  18.             }//sortez vectorul crescator
  19. for(i=1;i<=n;i++)
  20.     //am vectorul sortat, deci trebuie sa alipesc cifrele pentru a obtine numarul minim
  21.     while(v[i]!=0)
  22.         {c2=v[i]%10;
  23.         nr=nr*10+c2;
  24.         v[i]=v[i]/10;
  25.         }
  26. // aceasta este doar o presupunere prin ce as face     
  27. return 0;
  28. }
0,0p / 0 votes
Munca lungeste viata, lenea o scurteaza.

Nu lasa pe maine ce poti face azi.

Munca intareste pe om, lenea il ofileste.
User avatar
MrKasz123
Bit
 
Joined: 09 Jan 2012
Location: Bucharest
Status: 0

Re: magic6 pe campion sau magic in OJI 2011

Postby eni4ever » 10 Jan 2012, 00:16

În regulă :
  • vezi că dimensiunea maximă este de 1000 și nu de 100, așa cum ai setat tu
  • citirea elementelor în c (vectorul de litere) și v (vectorul de cifre) o faci urmărind următorul pseudocod :
    1. Pentru fiecare "număr" citit din fișier de n ori
    2.   Dacă este cifră (isdigit) atunci
    3.     Stocheaz-o în vectorul de cifre
    4.   altfel
    5.     Stocheaz-o în vectorul de litere
    6.   Sfârșit Dacă
    7. Sfârșit Pentru
    1. while(v[i]!=0)
    2.         {c2=v[i]%10;
    3.         nr=nr*10+c2;
    4.         v[i]=v[i]/10;
    5.         }
    Dacă "v" va conține doar cifre, atunci nu este necesar "while"-ul, nu crezi?

Permite-mi un sfat : dacă ți se pare dificilă, de ce nu iei o problemă mai accesibilă ? Nu este nici o rușine. Important este să lucrezi.

Spor
0,0p / 0 votes
Image

"Rațiunea vine în umbre scurte numite suferințe." Victor Adăscăliței
"Bender: Anything less than immortality is a complete waste of time.
Zoidberg: Then suicide it is! Step into my office ..." Futurama S06E06
User avatar
eni4ever
DWord
 
Joined: 03 Jan 2010
Location: Timișoara
Status: 57.83

Re: magic6 pe campion sau magic in OJI 2011

Postby MrKasz123 » 10 Jan 2012, 00:58

De fapt, am scris-o aici in graba si nu am apucat sa o verific :D

-- 09 Jan 2012, 23:35 --

Cu ajutorul watchului am observat ca imi citeste si spatiile de aceea pe exemplul
6
c 2 5 5 b 2
imi afiseaza c 2 5 (cand afisez vectorul fix dupa ce il citesc)
cum pot repara asta?

-- 09 Jan 2012, 23:35 --

cand citesc vectorul mai pun sa citeasca cate un spatiu?

-- 09 Jan 2012, 23:45 --

  1. for(i=1;i<=n;i++)
  2. &nbsp; &nbsp; {scanf("%c",&sir[i]);
  3. &nbsp; &nbsp; scanf(" ");
  4. &nbsp; &nbsp; if(sir[i]<10)
  5. &nbsp; &nbsp; &nbsp; &nbsp; v[i]=sir[i];
  6. &nbsp; &nbsp; else
  7. &nbsp; &nbsp; &nbsp; &nbsp; c[i]=sir[i];
  8. &nbsp; &nbsp; }
  9. for(i=1;i<=n;i++)
  10. &nbsp; &nbsp; printf("%c ",c[i]);

Imi pune toate elementele in vectorul c,ma poate ajuta cineva?

-- 09 Jan 2012, 23:58 --

Aha, m-am prins sir[i] este declarat char deci atunci , de exemplu daca v[i] ar fi 2 , pe el s-ar aloca valoarea 50
0,0p / 0 votes
Munca lungeste viata, lenea o scurteaza.

Nu lasa pe maine ce poti face azi.

Munca intareste pe om, lenea il ofileste.
User avatar
MrKasz123
Bit
 
Joined: 09 Jan 2012
Location: Bucharest
Status: 0

Re: magic6 pe campion sau magic in OJI 2011

Postby eni4ever » 10 Jan 2012, 00:59

Dacă vrei să faci matematic, atunci te uiți în tabelul acesta, vezi intervalele de cifre pentru caractere și verifici dacă caracterul citit este în intervalul respectiv. Vezi că tu pui când în v, când în c ceea ce-ti va face un șvaițer în vectorii respectivi. Folosește indici separați pentru c și v.
0,0p / 0 votes
Image

"Rațiunea vine în umbre scurte numite suferințe." Victor Adăscăliței
"Bender: Anything less than immortality is a complete waste of time.
Zoidberg: Then suicide it is! Step into my office ..." Futurama S06E06
User avatar
eni4ever
DWord
 
Joined: 03 Jan 2010
Location: Timișoara
Status: 57.83

Re: magic6 pe campion sau magic in OJI 2011

Postby MrKasz123 » 10 Jan 2012, 13:04

Am reusit, multumesc mult, si da , am aplicat alta metoda, daca declarai primul sir tip char si bagai cifrele din el in vectorul de cifre iti lua ca numar de caracter(ex. pt 2 iti lua 50) si iti facea o varza, am aplicat metoda cu vector caracteristic pentru cifre si mi-a iesit, multumesc pentru ajutor, chiar mi-ai fost de ajutor ^eni .
0,0p / 0 votes
Munca lungeste viata, lenea o scurteaza.

Nu lasa pe maine ce poti face azi.

Munca intareste pe om, lenea il ofileste.
User avatar
MrKasz123
Bit
 
Joined: 09 Jan 2012
Location: Bucharest
Status: 0

Re: magic6 pe campion sau magic in OJI 2011

Postby eric56 » 10 Jan 2012, 14:31

Stiu ca nu postez unde trebuie, dar nu am unde altundeva, MrKasz123 , iti poti schimba imaginea de profil inainte sa primesti primul advertisment?

Confrom regulilor (regulile-forumului-t38.html) nu este permis cu imagini de avatar care iti deranjeaza ochiul

Scuze din nou pentru postarea acestui reply in topicul nepotrivit.
0,0p / 0 votes
Respecta si vei fi respectat
User avatar
eric56
Bit
 
Joined: 19 Dec 2011
Status: 0

Re: magic6 pe campion sau magic in OJI 2011

Postby andreiandreiq » 10 Jan 2012, 18:04

Offtopic
0,0p / 0 votes
Image
User avatar
andreiandreiq
Word
 
Joined: 30 Dec 2009
Status: 33.33

Re: magic6 pe campion sau magic in OJI 2011

Postby adrianav500 » 11 Jan 2012, 12:42

poti sa-mi arati si mie rezolvarea corecta te rog?
0,0p / 0 votes
User avatar
adrianav500
Bit
 
Joined: 21 Dec 2011
Status: 0

Re: magic6 pe campion sau magic in OJI 2011

Postby MrKasz123 » 11 Jan 2012, 13:24

nu, nu asa se da, incearca sa iti dai seama si singur/a, uite, sa o luam matematic, declari vectorul pe care il citesti la inceput char, apoi cand il citesti verifici daca elementul citit este o litera adica daca este mai mare sau egal ca 'a' si mai mic sau egal ca 'z'
si o bagi in vectorul de litere(pe care il vei declara char) (%c) apoi verifici tot cand citesti daca elementul este o cifra adica daca este mai mic sau egal '9'si mai mare sau egal ca '0',daca da atunci vei da instructiunea vc[v[i]-'0']++ , in final faci o instructine repetitiva care parcurge toate cifrele si vezi daca pe o pozitie numarul/cifra e diferita de 0, daca da atunci vei afisa pozitia

Indiciu>>>> cand citesti ai grija sa citesti si endline-ul si spatiul altfel ti le va citi ca si caractere,daca mai ai inca intrebari scrie aici,nu e nici o rusine
0,0p / 0 votes
Munca lungeste viata, lenea o scurteaza.

Nu lasa pe maine ce poti face azi.

Munca intareste pe om, lenea il ofileste.
User avatar
MrKasz123
Bit
 
Joined: 09 Jan 2012
Location: Bucharest
Status: 0

Re: magic6 pe campion sau magic in OJI 2011

Postby adrianav500 » 11 Jan 2012, 14:32

ai o rezolvare mai de clasa a cincea?
0,0p / 0 votes
User avatar
adrianav500
Bit
 
Joined: 21 Dec 2011
Status: 0

Re: magic6 pe campion sau magic in OJI 2011

Postby MrKasz123 » 11 Jan 2012, 20:32

E simpla de fapt: se face cu 2 foruri. Daca urmezi explicatiile iti garantez ca vei reusi. Oricum daca nu ai invatat tipul char nu poti face problema, dar daca stii cate ceva despre asta poti de asemenea sa vizitezi noul meu topic intitulat Tipuri
0,0p / 0 votes
Munca lungeste viata, lenea o scurteaza.

Nu lasa pe maine ce poti face azi.

Munca intareste pe om, lenea il ofileste.
User avatar
MrKasz123
Bit
 
Joined: 09 Jan 2012
Location: Bucharest
Status: 0

uitati-va va rog

Postby adrianav500 » 11 Jan 2012, 23:19

Imi aratati si mie va rog cum se rezolva problema numere6 de pe campion?
P.S.:nu am nici o idee. *-:)
0,0p / 0 votes
User avatar
adrianav500
Bit
 
Joined: 21 Dec 2011
Status: 0

Re: magic6 pe campion sau magic in OJI 2011

Postby cata45 » 11 Jan 2012, 23:28

Ar trebui sa stai sa te gandesti mai bine cum se rezolva. Presupun ca vrei o rezolvare ca sa faci puncte. /:)
Nu iti vor folosi la nimic. Apuca-te si rezolva problemele mai usoare la care ai idei. Plus ca asta nu e problema la care sa dam idei.
0,0p / 0 votes
The EARTH without ART is just EH.
User avatar
cata45
Byte
 
Joined: 02 Sep 2010
Status: 9

Re: magic6 pe campion sau magic in OJI 2011

Postby adrianav500 » 11 Jan 2012, 23:31

Dar de asta am nevoie.
0,0p / 0 votes
User avatar
adrianav500
Bit
 
Joined: 21 Dec 2011
Status: 0


Return to Discutii despre programare

Who is online

Users browsing this forum: No registered users and 0 guests