•GooDy
Strain
Karma: -28
Deconectat
Mesaje: 41
|
|
« : Aprilie 19, 2008, 23:32:47 » |
|
Sorry daca este postat gresit, dar, urmatorul program ar merge pe compilatorul de la oni? // aflarea valorii maxime dintr-un interva, inlocuirea unei valori
#include <iostream.h> #include <fstream.h>
ifstream f("date.in"); ofstream g("date.out");
const int dim=100000; int N, M; int MaxArb[2*dim+1]; int start, finish, Val, Pos, maxim;
int Maxim(int a, int b) { if ( a > b ) return a; return b; }
void Update(int nod, int left, int right) { if ( left == right ) { MaxArb[nod] = Val; return; }
int div = (left+right)/2; if ( Pos <= div ) Update(2*nod,left,div); else Update(2*nod+1,div+1,right);
MaxArb[nod] = Maxim( MaxArb[2*nod], MaxArb[2*nod+1] ); }
void Query(int nod, int left, int right) { if (( start <= left ) && ( right <= finish )) { if ( maxim < MaxArb[nod] ) maxim = MaxArb[nod]; return; }
int div = (left+right)/2; if ( start <= div ) Query(2*nod,left,div); if ( div < finish ) Query(2*nod+1,div+1,right); }
int main() { int X, A, B; f>>N; f>>M; for ( int i = 1; i <= N; i++ ) { f>>X; Pos = i, Val = X; Update(1,1,N); }
for ( i=1; i <= M; i++ ) { f>>X; f>>A; f>>B; if ( X == 0 ) { maxim = -1; start = A, finish = B; Query(1,1,N); g<<maxim; g<<endl; } else { Pos = A, Val = B; Update(1,1,N); } } }
|
|
|
Memorat
|
|
|
|
•amadaeus
Client obisnuit
Karma: 28
Deconectat
Mesaje: 93
|
|
« Răspunde #1 : Aprilie 20, 2008, 00:40:25 » |
|
In general, poti testa sursele pe site - daca iti compileaza aici, vor compila cu siguranta si la ONI. Spre exemplu, arborii de intervale ii poti testa in arhiva educationala, aiciExemplul tau, de exemplu, compileaza cu warning-uri referitoare la fisierele header, care sunt considerate "deprecated". Foloseste in schimb
|
|
|
Memorat
|
"one of these days I'm going to cut you into little pieces..."
|
|
|
•GooDy
Strain
Karma: -28
Deconectat
Mesaje: 41
|
|
« Răspunde #2 : Aprilie 20, 2008, 11:48:23 » |
|
Hai ca acuma am ajuns sa fiu 100% in ceata.
Pai si in loc de cele cu ".h" ce folosesc?
Da daca schimb asta mai raman valabile urmatoarele functii:
ifstream f("lala.in"); - deschiderea unui fisier din care o sa citesc - citire f>>x; ofstream g("lala.out"); - deschiderea unui fisier in care o sa scriu - scriere g<<x;
Am mai citit acuma: "Functia main trebuie sa fie de tip int si sa intoarca 0 - return 0;"
Adica o sa fie ceva de genul:
int main() { ... ... ... return 0; }
Structurile le mai pot crea astfel:
struct nod { int nr; nod *leg; } *prim, *ultim, *p, *q, *r;
|
|
|
Memorat
|
|
|
|
•wefgef
|
|
« Răspunde #3 : Aprilie 20, 2008, 11:52:07 » |
|
Uita-te la mesaje de eroare ca am postat acolo cum sta treaba cu librariile .
|
|
|
Memorat
|
omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
|
|
|
•GooDy
Strain
Karma: -28
Deconectat
Mesaje: 41
|
|
« Răspunde #4 : Aprilie 20, 2008, 11:53:44 » |
|
Poti sa pui un link direct ca nu il gasesc
|
|
|
Memorat
|
|
|
|
•Cosmin
|
|
« Răspunde #5 : Aprilie 20, 2008, 12:01:09 » |
|
Ai cautare pe forum, ai cautare pe site. Ai si google.com foloseste unul dintre ele si o sa gasesti.
|
|
|
Memorat
|
|
|
|
•GooDy
Strain
Karma: -28
Deconectat
Mesaje: 41
|
|
« Răspunde #6 : Aprilie 20, 2008, 12:13:48 » |
|
..... mamaaaa, mi s-au inmuiat picioarele pentru cateva momente
Am luat o problema si am trimis-o de cateva ori si pana la urma am observat k singura modificare kre trebuia facuta era sa pun int main() inloce de void main().... si nu trebuia sa schimb <iostream.h> in <iostream>
Am o ultima intrebare.
Pe compilatorul linux merge iostream.h?
|
|
|
Memorat
|
|
|
|
•sima_cotizo
|
|
« Răspunde #7 : Aprilie 20, 2008, 12:16:10 » |
|
http://infoarena.ro/forum/index.php?topic=364.msg24956#msg24956 - poate daca ii asculti pe Cosmin si pe Wef o sa te lamuresti Daca ai trimis problema la infoarena si ai vazut ca merge cu iostream.h, si stiind ca infoarena are un compilator de linux, eu cred ca rezulta ca merge
|
|
« Ultima modificare: Aprilie 20, 2008, 12:22:26 de către Sima Cotizo »
|
Memorat
|
|
|
|
•wefgef
|
|
« Răspunde #8 : Aprilie 20, 2008, 19:50:26 » |
|
Compilatorul nostru de linux suporta si iostream.h, DAR aceasta NU este standard. Nu ti-o recomand sa o folosesti. De exemplu visual studio 2005 da eroare de compilare pentru urmatorul program: #include <iostream.h>
int main() { return 0; }
|
|
|
Memorat
|
omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
|
|
|
•GooDy
Strain
Karma: -28
Deconectat
Mesaje: 41
|
|
« Răspunde #9 : Aprilie 21, 2008, 12:19:34 » |
|
Deci cei care ati mai fost la ONI, lamuriti-ma si pe mine, se poate sau nu folosi <iostream.h>
|
|
|
Memorat
|
|
|
|
•wefgef
|
|
« Răspunde #10 : Aprilie 21, 2008, 12:24:23 » |
|
In principiu se poate... Dar e mai bine sa pui #include <iostream> using namespace std;
si sa codezi in rhide (presupun ca lucrezi pe windows).
|
|
|
Memorat
|
omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
|
|
|
•GooDy
Strain
Karma: -28
Deconectat
Mesaje: 41
|
|
« Răspunde #11 : Aprilie 21, 2008, 12:28:36 » |
|
se poate... Atata trebuia sa aud.
|
|
|
Memorat
|
|
|
|
•GooDy
Strain
Karma: -28
Deconectat
Mesaje: 41
|
|
« Răspunde #12 : Aprilie 21, 2008, 14:02:15 » |
|
da.... <ctype.h> merge?
|
|
|
Memorat
|
|
|
|
•amadaeus
Client obisnuit
Karma: 28
Deconectat
Mesaje: 93
|
|
« Răspunde #13 : Aprilie 21, 2008, 14:47:02 » |
|
Asa cum ti-a recomandat si wefgef, pentru a fi sigur ca librariile vor functiona asa cum te astepti, foloseste standardul actual: toate numele vor fi fara .h terminal (ex: iostream.h -> iostream, fstream.h -> fstream), iar librariile specifice C vor avea un c in fata (ex: stdio.h -> cstdio, stdlib.h -> cstdlib, ctype.h -> cctype). Incearca sa scrii sursele dupa aceste modele din standardul ISO, asta te asigura ca vor functiona oriunde si oricand (BorlandC a iesit de mult timp din clasa "oriunde" sau "oricand")
|
|
|
Memorat
|
"one of these days I'm going to cut you into little pieces..."
|
|
|
•GooDy
Strain
Karma: -28
Deconectat
Mesaje: 41
|
|
« Răspunde #14 : Aprilie 21, 2008, 15:00:05 » |
|
Pai da, da asta insemna ca toate functiile pe care le stiam pana acuma trebuie sa le invat sub forma unui alt limbaj .. si sincer, nu prea mai am timp (
|
|
|
Memorat
|
|
|
|
•sima_cotizo
|
|
« Răspunde #15 : Aprilie 21, 2008, 15:04:04 » |
|
Asa se intampla cand inveti sursele/functiile ca pe o poezie... dar daca tot "nu mai ai timp", incearca sa inveti si corespondentele astea si pe timp de concurs scrii sursa cum iti aduci aminte si apoi obligatoriu faci transformarile ... sau observi logica din spatele transformarilor si incerci sa acorzi atentie si aspectului astuia cand scrii o sursa.
|
|
|
Memorat
|
|
|
|
•amadaeus
Client obisnuit
Karma: 28
Deconectat
Mesaje: 93
|
|
« Răspunde #16 : Aprilie 21, 2008, 15:45:18 » |
|
Mie nu mi se pare deloc alt limbaj. In esenta, modificarile apar asupra primelor directive #include. Adica trebuie sa modifici doar numele librariilor (dupa regulile pe care le-am precizat in postul trecut), si sa lucrezi in namespace-ul std; astfel nu vei avea niciun fel de problema, limbajul in sine si toate functiile sunt aceleasi, si le poti folosi asa cum le-ai folosit pana acum in Borland. #include <iostream> #include <fstream>
using namespace std;
Testeaza cateva probleme (adunare, cmmdc etc) pe evaluatorul de aici folosind aceste librarii, si vei intelege exact la ce ma refer.
|
|
|
Memorat
|
"one of these days I'm going to cut you into little pieces..."
|
|
|
•GooDy
Strain
Karma: -28
Deconectat
Mesaje: 41
|
|
« Răspunde #17 : Aprilie 21, 2008, 15:50:43 » |
|
eu ma speriasem de o prostie.... M-am uitat peste niste surse si aveau total diferit fata de mine modul de creare a structurilor sau de citire din fisiere. Si apoi am vazut urmatoarele sursele si am inteles si faza cu : "toate numele vor fi fara .h terminal (ex: iostream.h -> iostream, fstream.h -> fstream), iar librariile specifice C vor avea un c in fata (ex: stdio.h -> cstdio, stdlib.h -> cstdlib, ctype.h -> cctype)." http://infoarena.ro/job_detail/159338?action=view-sourcehttp://infoarena.ro/job_detail/182024?action=view-source asta e daca unii oameni sunt prosti
|
|
|
Memorat
|
|
|
|
•amadaeus
Client obisnuit
Karma: 28
Deconectat
Mesaje: 93
|
|
« Răspunde #18 : Aprilie 21, 2008, 16:04:14 » |
|
In sursa din al doilea link, era recomandabil, spre exemplu, ca in loc de sa fie folosit Cred ca acum intelegi la ce ma refer...
|
|
|
Memorat
|
"one of these days I'm going to cut you into little pieces..."
|
|
|
|