Pagini: 1 2 3 [4] 5 6   În jos
  Imprimă  
Ajutor Subiect: 046 Text  (Citit de 33344 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
zalman
Strain
*

Karma: -11
Deconectat Deconectat

Mesaje: 31



Vezi Profilul
« Răspunde #75 : Aprilie 03, 2008, 12:17:43 »

cifrele intra la separatori sau se iau ca si cuvinte?tot 40 de pct ...si nu inteleg unde e problema  Brick wall

imi puteti da si mie testele 2,5 si 6?vreau sa vad ce nu merge si de ce nu merge... Cry
« Ultima modificare: Aprilie 03, 2008, 12:56:35 de către Andrei Grigorean » Memorat
tm_radu
De-al casei
***

Karma: 16
Deconectat Deconectat

Mesaje: 140



Vezi Profilul
« Răspunde #76 : Aprilie 03, 2008, 14:53:41 »

zalman : Ce metoda folosesti? Stiu ca luam 40 de puncte daca foloseam separatori si apoi am luat 100 dupa ce citeam fisierul caracter cu caracter si retineam doar numarul de cuvinte si lungimea totala a lor.
Memorat

Daca nu merge o preblema, depaneaz-o, si abia apoi arunci calculatoru pe geam
stocarul
Nu mai tace
*****

Karma: 49
Deconectat Deconectat

Mesaje: 203



Vezi Profilul
« Răspunde #77 : Aprilie 04, 2008, 15:37:21 »

Eu cred ca asta e cel mai simplu algoritm, insa nu inteleg de ce imi pica testul 7. Imi da wrong Answer!....Vedeti voi ceva gresit?, ca eu nu vad...
Cod:
#include <fstream>
using namespace std;
fstream in,out;
long i;
char v[1050000];
long c=0,l=0,t=0;

int main()
{
in.open("text.in",ios::in);
out.open("text.out",ios::out);
in.getline(v,1050000,'EOF');
in.close();
i=0;
while(v[i]!=0)
  {
  t=0;
  while(((v[i]>=65 && v[i]<=90) || (v[i]>=97 && v[i]<=122)) && v[i]!=0)
    {
    t++;
    i++;
    }
  if(t>0)
    {
    l=l+t;
    c++;
    }
  else i++;
  }
if(c>0)
  out<<(l/c);
else
  out<<"0";
out.close();
return 0;
}
Memorat
stocarul
Nu mai tace
*****

Karma: 49
Deconectat Deconectat

Mesaje: 203



Vezi Profilul
« Răspunde #78 : Aprilie 04, 2008, 16:29:48 »

Sunt mult mai multe cazuri;)
Dar in enunt scrie negru pe alb: cuvantul are doar [a-z][A-Z]....deci iese din discuti eceasta problema;)
Memorat
rEbyTer
Vorbaret
****

Karma: -85
Deconectat Deconectat

Mesaje: 154



Vezi Profilul
« Răspunde #79 : Aprilie 04, 2008, 16:36:25 »

Smile , nu a fost cine ştie ce problema (ca grad de dificultate)... am folosit un cache , o funcţie şi câteva linii în main Tongue

in cache reţineam ultimul caracter introdus, cu ajutorul lui verificam dacă fac sau nu trecerea la un alt cuvânt nou....


Foarte frumoasă problema Very Happy

P.S.: nu mai folosiţi toate funcţiile pe care le întâlniţi , că unele din ele nu sunt eficiente (la concursuri) ...
Încercaţi să vă feriţi când le întâlniţi.
Memorat
fireatmyself
Nu mai tace
*****

Karma: 36
Deconectat Deconectat

Mesaje: 492



Vezi Profilul
« Răspunde #80 : Aprilie 04, 2008, 16:38:49 »

@marius: citeste cu atentie enuntul. "intr-o" sunt 2 cuvinte.
Citat
"...un cuvant fiind definit ca o secventa continua maximala de caractere ale alfabetului englez ('a' .. 'z' , 'A' .. 'Z')
@cosmin:
Cod:
in.getline(v,1050000,'EOF');
'EOF' nu este end of file. foloseste functie pentru citire (in.get) citire sau foloseste (in loc de 'EOF') un caracter care nu apare niciodata (spre exemplu '\0')
Memorat

Viata e scurta. Daca nu o putem lungi, macar s-o facem lata.
rEbyTer
Vorbaret
****

Karma: -85
Deconectat Deconectat

Mesaje: 154



Vezi Profilul
« Răspunde #81 : Aprilie 04, 2008, 16:46:47 »

Mai am o întrebare...

Cum poţi să înveţi azi-noapte , toată ziuaRolling on the Floor Laughing e prea tare fraza

Citat
- Lasa-ma in pace, ca am invatat azi noapte toata ziua!
Memorat
stocarul
Nu mai tace
*****

Karma: 49
Deconectat Deconectat

Mesaje: 203



Vezi Profilul
« Răspunde #82 : Aprilie 04, 2008, 16:53:30 »

@marius: citeste cu atentie enuntul. "intr-o" sunt 2 cuvinte.
Citat
"...un cuvant fiind definit ca o secventa continua maximala de caractere ale alfabetului englez ('a' .. 'z' , 'A' .. 'Z')
@cosmin:
Cod:
in.getline(v,1050000,'EOF');
'EOF' nu este end of file. foloseste functie pentru citire (in.get) citire sau foloseste (in loc de 'EOF') un caracter care nu apare niciodata (spre exemplu '\0')
Multumesc:)
Nu stiam ca '\0' este pana la sfarsitul fisierului:)
Multumesc inca o data...am mai invatat ceva;))
Memorat
fireatmyself
Nu mai tace
*****

Karma: 36
Deconectat Deconectat

Mesaje: 492



Vezi Profilul
« Răspunde #83 : Aprilie 04, 2008, 17:52:07 »

Nu stiam ca '\0' este pana la sfarsitul fisierului:)
Multumesc inca o data...am mai invatat ceva;))

cred ca m-am exprimat eu prost. EOF este end of file, dar tu ai scris 'EOF'. intre ' ' se pune un sigur caracter in c/c++. iei 100 si daca scrii
Cod:
in.getline(v,1050000,EOF);

'\0' marcheaza sfarsitul unui sir de caractere. daca scrii codul urmator
Cod:
char s[10];
s[0] = '1';
s[1] = '2';
si te uiti la pozitia s[2], o sa vezi ca s[2] = '\0'.
am zis sa folosesti '\0' pt ca este un caracter care nu apare niciodata in fisier.


imi cer scuze ca te-am bulversat  Embarassed
Memorat

Viata e scurta. Daca nu o putem lungi, macar s-o facem lata.
DITzoneC
Nu mai tace
*****

Karma: 301
Deconectat Deconectat

Mesaje: 962



Vezi Profilul
« Răspunde #84 : Aprilie 04, 2008, 19:48:17 »

'\0' marcheaza sfarsitul unui sir de caractere. daca scrii codul urmator
Cod:
char s[10];
s[0] = '1';
s[1] = '2';
si te uiti la pozitia s[2], o sa vezi ca s[2] = '\0'.

Nu cred ca este neaparat '\0', continutul vectorilor este initalizat aleator daca sunt variabile locale.
Memorat
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #85 : Aprilie 04, 2008, 20:01:43 »

lol cat de usoara era pr asta si eu mam chinuit ptr 100 dar acu miai dat seama ca era foarte usoara ... am intrebato si pe profa de roamana care cuvinte despartite in silabe sunt considerate doua =)) lol  Rolling on the Floor Laughing si nici nu trebuia mia facut profa mea o lista cu toate cuvintele despartite cu - care sunt considerate ca doua =)) si acu vad ca era foarte usoara prima oara asa am facuto dar citeam cu stream-uri si de aia luam doar 40 acu vad ce usoara era si eu mam chinuit ca un prost =))

Ce ar fi sa scrii corect? Forumul infoarena nu este yahoo messenger  Shame on you
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
fireatmyself
Nu mai tace
*****

Karma: 36
Deconectat Deconectat

Mesaje: 492



Vezi Profilul
« Răspunde #86 : Aprilie 04, 2008, 20:46:49 »

[...] Eu de obicei nu prea citesc enunturile dar stiu ca am incercat si asa si nu luam 100

nu este o atitudine corecta. daca vrei sa ajungi la ONI anul viitor, ar trebui sa citesti pana la ultima virgula.
si un sfat offtopic... n-ar strica sa nu te mai grabesti si sa scrii mai ingrijit.  Thumb up
Memorat

Viata e scurta. Daca nu o putem lungi, macar s-o facem lata.
jupanu92
Client obisnuit
**

Karma: -86
Deconectat Deconectat

Mesaje: 76



Vezi Profilul
« Răspunde #87 : Aprilie 05, 2008, 12:01:50 »

Am inteles !! Mersi pentru sfaturi .
Memorat
shnako
Client obisnuit
**

Karma: 3
Deconectat Deconectat

Mesaje: 50



Vezi Profilul
« Răspunde #88 : Decembrie 28, 2008, 17:12:49 »

Imi poate spune cineva cum pot optimiza programu asta ? Ca pe 3 teste iau TLE Brick wall
Cod:
#include <stdio.h> 
#include <ctype.h> 
int s=0, c;
bool sw; 
char x; 
int main() 

freopen("text.in","r",stdin); 
freopen("text.out","w",stdout); 
while(scanf("%c", &x)!=EOF) 
{
   sw=1;
   while (!isalpha(x)&&!EOF)
    scanf("%c", &x);
   while (isalpha(x)&&!EOF)
    {
      sw=0;
    s++;
      scanf("%c", &x);
      }
   if (sw==0)
    c++;
   }
printf("%d", s/c); 
return 0; 
}

Memorat
jupanubv92
Client obisnuit
**

Karma: 19
Deconectat Deconectat

Mesaje: 74



Vezi Profilul
« Răspunde #89 : Decembrie 28, 2008, 17:46:24 »

Daca schimbi citirea iei sigur 100 de puncte .

Uite cum am citit eu :
Cod:
x=fgetc(stdin);
while(!feof(stdin)
 // deci ce citesti tu cu scanf("%c",&x) schimbi si citesti cu x=fgetc(stdin)
// si in loc de !EOF pui ! feof(stdin)
 

Eu am facut problema mai de mult dar am trimis sursa ta din nou cu citirea asta sa fiu sigur ca nu iti spun prostii.
« Ultima modificare: Decembrie 28, 2008, 20:57:28 de către Popescu Marius » Memorat
c_e_manu
Nu mai tace
*****

Karma: 56
Deconectat Deconectat

Mesaje: 243



Vezi Profilul
« Răspunde #90 : Decembrie 28, 2008, 19:06:28 »

eu am citit cu streamuri si tot a intrat Think

scapa de while-uri... pastreaza-l doar pe cel pana la sfarsitul fisierului, si in blocul respectiv foloseste doar if-uri... nu are rost sa postez partea aceea de cod ca ar fii toata rezolvarea la problema... peacefingers


LE: @marius: cum ai trimis tu sursa lui cand a ta are 0.90 kb si a lui 0.40? Rolling on the Floor Laughing
Memorat
jupanubv92
Client obisnuit
**

Karma: 19
Deconectat Deconectat

Mesaje: 74



Vezi Profilul
« Răspunde #91 : Decembrie 28, 2008, 20:55:40 »

Sursa mea are 0.90 kb pentru ca in sursa sunt doua variante:
  1.  E varianta asta a lui numai ca i-am schimbat citirea
  2.  Este problema cu care am luat eu 100 de p si am rezolvat-o mai de mult numai ca am pus-o in comentariu .

Am trimis-o si fara comentariu sa vezi ca are 0.40 si ca nu mint .
 Weightlift
Memorat
shnako
Client obisnuit
**

Karma: 3
Deconectat Deconectat

Mesaje: 50



Vezi Profilul
« Răspunde #92 : Decembrie 29, 2008, 11:35:53 »

Ambele variante dau 100 de puncte Smile Ms mult  Winner 1st place
Memorat
gggbbbyyy
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 2



Vezi Profilul
« Răspunde #93 : Martie 17, 2009, 11:04:36 »

Daca citesti problema atent iei 100... trebuie sa afisezi nr intreg ci nu cu zecimale
Memorat
Bit_Master
Vorbaret
****

Karma: -49
Deconectat Deconectat

Mesaje: 159



Vezi Profilul
« Răspunde #94 : Martie 29, 2009, 14:50:40 »

Daca in problema scrie ca pe prima linie se citeste textul, de ce se intinde textul si pe liniile urmatoare. N-ar trebui modificat enuntul in "incepand cu prima linie"?  Angry
Am luat 40 puncte cand citeam doar prima linie si 100 cand am citit toate liniile.  Raised eyebrow
Memorat
chibicitiberiu
Strain
*

Karma: 3
Deconectat Deconectat

Mesaje: 49



Vezi Profilul
« Răspunde #95 : Martie 31, 2009, 11:18:22 »

pt o sursa de genul:
#include <fstream.h>
#include <string.h>
ifstream fin("text.in");
ofstream fout("text.out");
unsigned long nrc,nrl,medie;
int ok;
char c;
int main()
{ fout<<3;
   return 0;
}
primesc eroarea de compilare:
/usr/lib/gcc-lib/i486-linux/3.3.5/../../../crt1.o(.text+0x18): In function `_start':
../sysdeps/i386/elf/start.S:98: undefined reference to `main'
collect2: ld returned 1 exit status
 Think

Trebuie sa pui #include<fstream> in loc de #include<fstream.h> si dupa #include pui 'using namespace std;'.
GCC nu e la fel ca Borland C.
Memorat
gabitzish1
Moderatori infoarena
Nu mai tace
*****

Karma: 321
Deconectat Deconectat

Mesaje: 926



Vezi Profilul
« Răspunde #96 : Martie 31, 2009, 18:24:08 »

pt o sursa de genul:
#include <fstream.h>
#include <string.h>
ifstream fin("text.in");
ofstream fout("text.out");
unsigned long nrc,nrl,medie;
int ok;
char c;
int main()
{ fout<<3;
   return 0;
}
primesc eroarea de compilare:
/usr/lib/gcc-lib/i486-linux/3.3.5/../../../crt1.o(.text+0x18): In function `_start':
../sysdeps/i386/elf/start.S:98: undefined reference to `main'
collect2: ld returned 1 exit status
 Think

Trebuie sa pui #include<fstream> in loc de #include<fstream.h> si dupa #include pui 'using namespace std;'.
GCC nu e la fel ca Borland C.

Trimite'i si un mail ca i'ai raspuns, sa citeasca si u-92. Probabil si'a pierdut toate sperantele ca il va lamuri cineva.  Thumb up
« Ultima modificare: Martie 31, 2009, 18:37:36 de către Gabriel Bitis » Memorat
popoiu.george
Vorbaret
****

Karma: 19
Deconectat Deconectat

Mesaje: 162



Vezi Profilul
« Răspunde #97 : Mai 01, 2009, 15:44:45 »

Nu inteleg, se considera si numerele cuvinte?

ex: Mi-am luat 1 kg de cirese.

Voi cum ati facut?

Daca iau numa caracterele a,...,z si A,....,Z primesc doar 40 pct. Iau WA la 5 teste si Killed by signal 8(SIGFPE) la 1.

Ma puteti ajuta?
Memorat
Alexa_ioana_14
Strain
*

Karma: 6
Deconectat Deconectat

Mesaje: 37



Vezi Profilul
« Răspunde #98 : Mai 14, 2009, 13:01:20 »

Eu am citit initial s[i-1] si s, i={1,...scanf()!=EOF} si am verificat daca s[i-1]==litera=> ++litera; iar daca s!= litara =>++cuvant;
Am luat separat s[n]==0 s[n-1] ultimul caracter din sir:daca s[n-1]==litera atunci ++litera; si daca e litera verificam caracterul s[n-2] si dak nu era litera ++cuvant;
daca s=("...aaa...a") fara " ", nu imi da corect...
Unde gresesc? Sad
Memorat
andrici_cezar
De-al casei
***

Karma: -47
Deconectat Deconectat

Mesaje: 121



Vezi Profilul
« Răspunde #99 : Mai 14, 2009, 14:09:16 »

Trebuie sa faci test la final deoarece el nu citeste si enterul;) si trebuie sa ai grija ca daca e "alex alex" tie o sa iti zica ca e un singur cuvant si trebuie sa pui "if (s[n]==litera) ++cuvant;" asta o pui fix dupa ce ai iesit din while;) sau e alta problema?
Memorat
Pagini: 1 2 3 [4] 5 6   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines