Jump to content

cmiN

Active Members
  • Posts

    1609
  • Joined

  • Last visited

  • Days Won

    27

Everything posted by cmiN

  1. Trebuie neaparat in C ca pe urma vine unu cu list<> sau mai stiu eu ce-i trece prin cap. Cred ca voia sa spuna sa faceti acest lucru fara ajutorul unei structuri de date. Ai PM 6 linii de cod .
  2. @demisec te cam complici ... gandeste-te ca faci toata treaba asta intr-un timp 3*N (prelucrare, inversare, comparare) pe cand poate fi facut in N/2 plus ca ai tinut cont doar de cateva semne de punctuatie nu de toate Ce ar fi daca ai lua doua variabile x si y. Cu x pleci din stanga de tot cu y pleci din dreapta de tot (in sir) si cu fiecare din cele 2 te apropii de mijloc si la prima neregularitate returnezi false, in felul asta parcurgi jumatate de vector. Acum te intrebi cum prelucrezi semnele, spatiile, etc. ... simplu, sari peste ele. Avansezi si cu x (spre dreapta) si cu y (spre stanga) pana dai de un caracter pentru care functia isalpha sau isalnum, daca vrei si cifre, returneaza true, in momentul ala ai ajuns si cu x si cu y la primele 2 litere nevizitate ale extremitatilor. Apoi compari x pe y trecandu-le pe amandoua prin tolower sau cu o functie in care daca chr >= 'a' atunci chr = chr - 'a' + 'A'. Algoritmul e simplu si compact in py si mergea la fel de simplu si in C, dupa ce incep sa se puna sursele pun si eu codul.
  3. Trebuia neaparat in C ? Vezi ca ti-am trimis in Py .
  4. Da, scrie lucrul ala in Start->Run sau cmd (batch) sau scoate bateria. Ai intrebat-o daca a inchis tot ce a deschis (mess, facebook si toate cacaturile din tray) inainte sa apese pe shutdown ? Sigur a apasat pe shutdown sau sigur butonul shutdown face lucrul implicit ? Am impresia ca merge modificat comportamentul lui, mai ales la un laptop pe la power settings sau ceva de genul si da mai mult un suspend sau stand by plm. Cum adica intra intr-un fel de sleep ? In momentul in care monitorul nu mai afiseaza nimic (decat osdul) nici procesorul nu mai primeste tensiune, dar daca pcul inca mai merge fara sa afiseze un waiting for other programs to close sau un please wait care se incarca in gol atunci clar nu a dat shutdown. Ori cumva dupa ce apsa pe shutdown inchide si clapa ? Am observat comportament ciudat pe unele laptopuri.
  5. Acum a facut post si dincolo ... mai bine il lasai in pace . Vezi ca ai thread tools si move, in cazul tau deja delete.
  6. ^ Da ... stiam ca e o sursa .c din prima si puteam sa jur ca o compilasem cu gcc dar se pare ca de la oboseala ... .
  7. Ca programator ti se vor deschide in timp mult mai multe optiuni si vei vedea altfel joburile IT si niciodata nu vei avea salariu prea motivant ca incepator, dar acumuland experienta creste si salariul + multe bonusuri in functie de ce vei sti sa faci. Asa pe sisteme/retea e la fel cum te-ai casatori pe la 20 ani, pierzi toata distractia dar stii ca ai ceva stabil, pe cand ca programator nu te pune nimeni sa ramai acolo, lucreaza minimul ala de ore, prinde ceva experienta, poate ai timp si de un mic proiect freelance din cand in cand si apoi iti faci cvul mai frumos si aplici undeva mai sus, apoi firma s-ar putea sa-ti faca oferte doar sa ramai la ei asta daca chiar te tii de treaba si tot asa nu te vei opri niciodata . Plus ca, dupa parerea mea, ca programator faci mai mult ce vrei (cum vrei) decat oricare alt slujbas.
  8. ^ Imi da 2 erori de cast si inca 2 warninguri, toate legate de conversia din void* [*] in altceva, le rezolv (desi nu cred ca era comportamentul dorit) si apoi imi crapa la executie din prima, fara sa afiseze ceva.
  9. box.com/cmiN -> /tutorials/C++
  10. Asta deja e magarie! Dupa atata timp tot nu ti-a intrat la cap sa incerci macar sa ai vointa sau sa te lasi complet. Ce e atat de greu in intelegerea acestor cerinte ? Rezolvarea lor ? Nu stii sa declari un vector pe care sa-l parcurgi citindu-l sau scriind in el, bun. Dar cu ce te ajuta o astfel de problema rezolvata daca nu-ti apartine, daca ramai la fel de lemn ? Eu te-as ajuta cu cea mai mare placere, dar spune-mi si mie unde te impotmolesti, unde te chinui tu atat de mult si tot nu-ti iese, dai de un greu pe care nu-l poti duce mai departe si ai nevoie de ajutor ? Ai vreun scop in viata sau chiar nu cunosti semnificatia cuvantului "indatorat" ?
  11. Ti-am raspuns, grija mare la cum se face I/O pe fisiere, mai ales in politica Python. Incearca sa faci mereu str(input) daca vrei compatibilitate si cu 2.x ca sa nu folosesti raw_input , la asta ma refeream la acel punct care se vede ca il aveai deja rezolvat.
  12. >>> f = open("text.txt", "w") >>> string = "{'a': 'b', 'c': 1}" >>> f.write(string) >>> f.close() >>> f = open("text.txt", "r") >>> x = eval(f.read().strip()) >>> f.close() >>> x {'a': 'b', 'c': 1} >>> type(x) <type 'dict'> >>> Eu vad ca functioneaza cum trebuie eval . Cu pickle poti intr-un mod mai avansat sa stochezi mai mult definitii de clase/functii, variabile primitive, dar nu functioneaza intotdeauna cum trebuie si pentru orice mai ales cand e vorba de continut. Ideea este sa scrii cuvintele in fisier cate doua pe fiecare rand despartite prin spatiu si iei linie cu linie la citire, careia ii dai split si primul element din lista split se duce in cheie si al doilea se duce in valoarea ei si in felul asta poti da update mai misto.
  13. Am trezit Zenul din el ). Oricum aud tot felul de mieji ipocriti care spun ca ei nu au nicio legatura cu asa ceva ba chiar au ceva impotriva linuxului, spunand ca utilizatorii acestui sistem doar "se caca" pe ei ca sunt mai smecheri, totusi cand vad "crudul" adevar ca telefonul lor smenar pe Android e de fapt un linux, le pica fata.
  14. Your mother is like html, tiny head and huge body.
  15. Pare veche, dar nu stiam si nici nu credeam ca exista asa ceva, cosmarul lui pyth0n3 .
  16. Wtf nici nu-mi trecuse prin gand. Increderea asta -,-.
  17. Ai rabdare, in 10 ore de azi dimineata pana acum cine crezi ca apuca sa vada sau sa testeze asa ceva ? Oricum mie imi place cat de cat cum ai organizat codul desi mai mergea putin lucrat la partea de lizibilitate, dar arata mult mai bine decat majoritatea lucrurilor ce se posteaza pe aici. Stai linistit ca am si eu multe posturi in Python care nu au primit un gram de atentie sau pentru care chiar am muncit in special pentru anumite lucruri, iar cateva scripturi de cacat care le-am pus asa pur si simplu sa mai fac un thread doar ca sa ajut pe cineva cu o chestie au mult mai multe vizualizari si likeuri, dar nu o fac pe ipocritul sa spun ca ma deranjeaza, ci las acolo postul sa fie si sa vina in ajutorul celui ce cauta si are nevoie. De acest lucru mi-am dat seama demult si nu regret niciun efort deoarece in tot ce am facut a existat si un interes personal si chiar m-a ajutat "practica" asta. Asa ca, inainte sa spui ceea ce ai spus mai sus, mai gandeste-te o data si pleaca de la o "fundatie" bazata pe ideea ce tot ce faci faci pentru tine nu pentru altii, nu pentru rst si niciun efort nu e in zadar.
  18. @Starker de ce nu rezolvi mai intai sau dai macar un pont si apoi sa te legi cu adevarat de om ... nu e o intrebare chiar atat de banala. http://ideone.com/h2Gxg /* * Problema nu e chiar atat de simpla pe cat pare, totusi se poate obtine * matematic o complexitate amortizata O(140). * La prima vedere se observa ca sirul contine secvente de numere unde * secventa[i] contine aceleasi numere ca si secventa[i-1] + X unde * X reprezinta dimensiunea+1 a secventei i-1, practic la fiecare secventa * se adauga in plus fata de penultima un numar mai mare cu 1 fata de ultimul adaugat. * * Lungimea unui sir format din subsecvente complete este suma lungimilor fiecarei * subsecvente: 1 + 2 + 3 + ... + N respectiv N(N+1)/2. * Sa zicem ca avem K=3 (lungimea sirului) si vrem sa aflam N (lungimea ultimei subsecvente). * Atunci N(N+1)/2=K devine N^2/2+N/2=K mai exact avem ecuatia 0.5N^2+0.5N-K=0. * Rezolvam ecuatia cu ajutorul subprogramului si vedem ca N=2 pentru K=3 * deci lungimea ultimei subsecvente este 2 adica avem sirul: (1)(12) iar N e ultimul termen. * Stiind N stim si ultimul termen din subsecventa (care este egal cu N) astfel * aflam si ce termen avem pe pozitia K (pozitie pentru care N este radacina intreaga) * dar nu pentru orice K vom avea solutii intregi, asa ca tot aflam radacina pozitiva * pana cand ea apartine lui [N]*, decrementand pe K. In momentul asta stim ca elementul * de pe noul K este chiar radacina, dar de la vechiul K s-a ajuns la noul K * decrementand de Z ori, deci Z este numarul cautat pentru ca se pleaca de la sfarsitul * ultimei subsecvente complete de dimensiunea noului K. */ #include <stdio.h> #include <math.h> #define RET -32000 float Ecuatie(float a, float b, float c) { /// Calculeaza radacina maxima a unei ecuatii de gradul 2. float del = b * b - 4 * a * c; if (del < 0) return RET; // solutii complexe float x1 = (sqrt(del) - / (2 * a); float x2 = c / a / x1; // bunicu' Viete //fprintf(stdout, "%f %f\n", x1, x2); x1 = x1 > x2 ? x1 : x2; if (x1 < 0) return RET; // ambele negative return x1; } int main() { /** * Citim `k`. * Il decrementam progresiv pana gasim solutie intreaga. * Vedem de la ce numar am plecat. * Il afisam, acesta apartinandu-i pozitiei `k`. */ printf("Introdu `k`: "); int k, cnt; for (scanf("%d", &k), cnt = 0; 1; --k, ++cnt) { float res = Ecuatie(0.5, 0.5, -k); if (res == RET) continue; // invalid root if (res - (int)res == 0.0) { // daca avem radacina intreaga // `k` reprezinta indexul unui ultimul element dintr-o serie if (!cnt) cnt = res; // daca avem serii complete atunci afisam dimensiunea ultimei serii printf("Elementul `k`: %d\n", cnt); break; } } return 0; } P.S.: Daca dai direct copy paste la cod fara sa citesti comentariile si sa bagi la cap atunci Starker chiar avea dreptate.
  19. Teoretic ai voie orice compileaza , la olimpiada specifica ca nu ai voie ASM sau biblioteci de retea, la bac nu am vazut sa specifice ceva si oricum nu cred ca apreciaza si promoveaza reinventarea rotii, dar ai dreptate nu merita riscul.
  20. Nici eu nu inteleg de ce nu afiseaza si 4, poate ai/e gresit exemplul. Deci un numar din a doua linie poate aparea o data sau de mai multe ori in linia a treia, dar: Cum plm ? Daca pe linia a doua avem doua numere la fel nu inseamna ca trebuie sa afisam unul singur, vezi linia de mai sus boldata. Totusi mai 1337 ar merge : #include <cstdio> #include <iostream> #include <vector> #include <algorithm> using namespace std; vector<int> sorted; int main() { freopen("BAC.TXT", "r", stdin); int len1, len2; cin >> len1 >> len2; sorted.resize(len1); for (int i = 0; i < len1; ++i) cin >> sorted[i]; for (int i = 0; i < len2; ++i) { int nr; cin >> nr; if (binary_search(sorted.begin(), sorted.end(), nr)) cout << nr << " "; } cout << endl; fclose(stdin); return 0; } P.S.: Codul lui Zamolxis da doar 4 pe testul: 3 4 2 2 4 4 3 1 2 Nu are nicio logica comparatia intre V[i-1] si V atat timp cat tu umbli in numerele de pe a treia linie care nu-s sortate si gandeste-te ce se intampla cand ai M mai mare decat N si faci V accesand o valoare cu continut random, ramas de la alocarea statica, neinitializata. Bat la pariu ca cerinta de fapt trebuia sa specifice ca numerele distincte sunt pe a doua linie (cele sortate) mai ales ca au precizat ca sortarea este strict crescatoare, iar numerele de pe a treia linie era logic sa se repete fiindca tocmai de aia au precizat sa se afiseze numere din a doua linie ce apar cel putin o data pe a treia linie. Asta mergea la fel cu o cautare binara dar la fiecare afisare sa se adauge intr-un set/heap numarul respectiv pentru ca urmatoarele ce urmeaza a fi cautate/afisate sa fie mai intai cautate in cele deja afisate pentru a nu fi repetate. Sau mai simplu, numerele de pe a treia linie sa fie si ele sortate, iar apoi cautate liniar mereu plecand de la ultima pozitie cautata, pana cand se gaseste numarul sau se da de un numar mai mare decat cel cautat, iar complexitatea totala tot este sub MN.
  21. Acest tutorial tinde sa arate prin video rezolvarea la challenge-ul (keygenme) lui flux. Este in engleza ca sa fie accesibil pentru toata lumea. Este intentionat pentru incepatori. https://rapidshare.com/files/3837680734/Reversing_flux_keygenme.zip |roe
  22. cmiN

    Oji !

    Se putea scoate lejer un 68 rezolvand primul subpunct la ambele probleme si afisand testul lor pentru al doilea subpunct, dar m-am prins prea tarziu si am ramas cu 32 =).
  23. o bate la cur pe pustoaica ta
  24. cmiN

    un mic ajutor?

    #include<iostream> #include<string> [COLOR=#40e0d0][B]#include <cstring> #include <cstdlib>[/B][/COLOR] using namespace std; class persoana { int varsta; public: char *pnume; persoana(char *n,int v):varsta(v) { pnume=new char[strlen("Anonim")+1]; [COLOR=#40e0d0][B]strcpy(pnume, n);[/B][/COLOR] } int spune_varsta() { return varsta; } }; int main() { persoana p1("vasilache",45); persoana p2=p1;//apel constructor de copiere cout<<"\n"<<p1.pnume<<"are"<<p1.spune_varsta()<<"ani"; cout<<"\n"<<p2.pnume<<"are"<<p2.spune_varsta()<<"ani"; strcpy(p2.pnume,"Gigi"); cout<<"\n"<<p1.pnume<<"are"<<p1.spune_varsta()<<"ani"; cout<<"\n"<<p2.pnume<<"are"<<p2.spune_varsta()<<"ani" << endl; system("PAUSE"); return 0; }
×
×
  • Create New...