•pauldb
|
|
« : Februarie 17, 2009, 20:01:29 » |
|
|
|
|
Memorat
|
Am zis
|
|
|
•Florian
|
|
« Răspunde #1 : Februarie 17, 2009, 21:15:25 » |
|
E cam ciudat ca sursa asta ia TLE pe testul 19. Rezolvarea e O(N) ca timp si O(1) ca memorie. E din cauza citirii ?
|
|
« Ultima modificare: Februarie 17, 2009, 21:34:31 de către Marcu Florian »
|
Memorat
|
|
|
|
•Marius
|
|
« Răspunde #2 : Februarie 17, 2009, 21:33:21 » |
|
Da, problema e de la funcțiile folosite pentru citire. Când am evaluat, surse cu scanf() mergeau uneori cu 0.3s mai rapid pe un test la a doua rulare. Nu știu de ce se întâmplă așa. Dacă retrimiți sursa cred că vei lua 100 de puncte. Ciudat lucru, dar nu am ce-i face. Dacă în schimb vei folosi streamurile din C++ nu vei avea nicio problemă. Succes! Florian, iată: 100 cu sursa ta și 2s maxim pe test.
|
|
|
Memorat
|
Faceti lucrurile simplu: pe cat de simplu posibil, dar nu mai simplu.
|
|
|
•Mishu91
|
|
« Răspunde #3 : Februarie 17, 2009, 21:40:10 » |
|
Dacă în schimb vei folosi streamurile din C++ nu vei avea nicio problemă. Succes!
Streamurile nu erau mai incete?
|
|
|
Memorat
|
|
|
|
•Marius
|
|
« Răspunde #4 : Februarie 17, 2009, 21:42:46 » |
|
Dacă în schimb vei folosi streamurile din C++ nu vei avea nicio problemă. Succes!
Streamurile nu erau mai incete? Acum sunt mai rapide.
|
|
|
Memorat
|
Faceti lucrurile simplu: pe cat de simplu posibil, dar nu mai simplu.
|
|
|
•Mishu91
|
|
« Răspunde #5 : Februarie 17, 2009, 21:48:36 » |
|
Ciudat... cu streamuri iau 70
|
|
|
Memorat
|
|
|
|
•Marius
|
|
« Răspunde #6 : Februarie 17, 2009, 21:52:31 » |
|
Ciudat... cu streamuri iau 70Iar eu iau 100 așa.
|
|
|
Memorat
|
Faceti lucrurile simplu: pe cat de simplu posibil, dar nu mai simplu.
|
|
|
•Mishu91
|
|
« Răspunde #7 : Februarie 17, 2009, 22:01:45 » |
|
Adica el citeste mai greu daca deschid fisieru' cu freopen?
|
|
|
Memorat
|
|
|
|
•Florian
|
|
« Răspunde #8 : Februarie 17, 2009, 22:03:37 » |
|
Ce urat sa patesti o faza de asta intr-un concurs.
|
|
|
Memorat
|
|
|
|
•Marius
|
|
« Răspunde #9 : Februarie 17, 2009, 22:05:59 » |
|
Adica el citeste mai greu daca deschid fisieru' cu freopen?
Așa se pare.
|
|
|
Memorat
|
Faceti lucrurile simplu: pe cat de simplu posibil, dar nu mai simplu.
|
|
|
•stocarul
|
|
« Răspunde #10 : Februarie 19, 2009, 01:02:49 » |
|
Mi s-a parut foarte interesanta metoda formarii sirului unui vector de lungime foarte mare la problema: http://infoarena.ro/problema/secv6Cred ca s-ar putea implementa ceva asemanator si aici, astfel incat sa nu mai fie probleme cu citirea.
|
|
|
Memorat
|
|
|
|
•MciprianM
|
|
« Răspunde #11 : Februarie 21, 2009, 14:59:00 » |
|
Cred ca ar trebui un test in care toate numerele din sir sa fie negative. Eu iau 100 ignorand acest aspect(obtin rasp 0 in loc de maximul din acel sir);
|
|
|
Memorat
|
|
|
|
•Marius
|
|
« Răspunde #12 : Februarie 21, 2009, 18:16:11 » |
|
Cred ca ar trebui un test in care toate numerele din sir sa fie negative. Eu iau 100 ignorand acest aspect(obtin rasp 0 in loc de maximul din acel sir);
Vor fi taxați și cei care inițializează suma maximă cu 0.
|
|
|
Memorat
|
Faceti lucrurile simplu: pe cat de simplu posibil, dar nu mai simplu.
|
|
|
•cvicentiu
Strain
Karma: 2
Deconectat
Mesaje: 15
|
|
« Răspunde #13 : Februarie 22, 2009, 17:26:53 » |
|
Nu inteleg un lucru: Streamurile merg mai repede acum pe aceasta problema sau in mod general mai repede decat cu citire in C? Eu credeam ca streamurile merg in general mai greu si chiar am patit-o la cateva probleme cu backtracking sa nu mearga varianta cu streamuri. Daca poate cineva sa-mi explice as fi recunoscator.
|
|
|
Memorat
|
|
|
|
•Marius
|
|
« Răspunde #14 : Februarie 22, 2009, 18:45:15 » |
|
Nu inteleg un lucru: Streamurile merg mai repede acum pe aceasta problema sau in mod general mai repede decat cu citire in C? Eu credeam ca streamurile merg in general mai greu si chiar am patit-o la cateva probleme cu backtracking sa nu mearga varianta cu streamuri. Daca poate cineva sa-mi explice as fi recunoscator. Pe infoarena, înainte streamurile mergeau mai greu decât citirea în C. Dar, de ceva timp, deoarece s-a făcut un update, sunt mai rapide. Pe alte siteuri, streamurile sunt în continuare mai lente.
|
|
|
Memorat
|
Faceti lucrurile simplu: pe cat de simplu posibil, dar nu mai simplu.
|
|
|
•cvicentiu
Strain
Karma: 2
Deconectat
Mesaje: 15
|
|
« Răspunde #15 : Februarie 22, 2009, 20:33:29 » |
|
Mersi pentru raspuns , acum sa fac problema cu streamuri sa vedem ce iese.
|
|
|
Memorat
|
|
|
|
•wefgef
|
|
« Răspunde #16 : Februarie 24, 2009, 23:49:43 » |
|
Anul trecut la ONI/baraje/lot streamurile erau mai lente. E mai sigur sa citesti in C .
|
|
|
Memorat
|
omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
|
|
|
•c_e_manu
|
|
« Răspunde #17 : Februarie 25, 2009, 00:10:44 » |
|
nu vreau sa sune prea critic, dar la o problema din arhiva educationala credeti ca e normal ca diferenta sa se faca la citirea cu streamuri si modul de deschidere al fisierului?
|
|
|
Memorat
|
|
|
|
•wefgef
|
|
« Răspunde #18 : Februarie 25, 2009, 00:17:36 » |
|
Nu este intentia noastra sa nu poti lua 100 cu streamuri, dar uite care e problema: - vrem ca o citire normala in C (scanf) + algoritm O(N) sa ia 100 - vrem ca o citire parsata in C (fgets) + algoritm O(N log N) sa ia mai putin de 100 - vrem ca o citire normala in C++ (streamuri) + algoritm O(N) sa ia 100 Din pacate streamurile merg (mergeau) atat de prost incat nu puteam sa dam limita destul de mare, pentru ca ar fi intrat o solutie parsata proasta in C . Si in orice caz, este mult mai bine sa va chinuiti pe infoarena si sa va invatati sa cititi cu scanf, decat sa pierdeti puncte din aceasta cauza la olimpiada si sa va dati cu capul de pereti
|
|
|
Memorat
|
omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
|
|
|
•c_e_manu
|
|
« Răspunde #19 : Februarie 25, 2009, 00:19:40 » |
|
am inteles ... incurcate sunt caile compilatoarelor... e bine de stiut insa ca la majoritatea concursurilor inca sunt mai rapide citirile in C
|
|
|
Memorat
|
|
|
|
•devilkind
|
|
« Răspunde #20 : Februarie 25, 2009, 10:44:18 » |
|
@wefgef - se putea da inputul printr-o formula. Si mie mi se pare putin aiurea sincer sa fiu sa te chinui atata sa optimizezi o problema din arhiva educationala.
|
|
|
Memorat
|
|
|
|
•Marius
|
|
« Răspunde #21 : Februarie 25, 2009, 15:04:09 » |
|
@wefgef - se putea da inputul printr-o formula. Si mie mi se pare putin aiurea sincer sa fiu sa te chinui atata sa optimizezi o problema din arhiva educationala.
La ce chinuri te referi? Problema scanfurilor e că funcționează uneori cu 0.2, 0.3s mai lent pe testele mari. Cei care s-au plâns că nu au luat 100 cu scanfuri eu le-am retrimis sursa și am obținut 100 lejer.
|
|
|
Memorat
|
Faceti lucrurile simplu: pe cat de simplu posibil, dar nu mai simplu.
|
|
|
•pauldb
|
|
« Răspunde #22 : Februarie 25, 2009, 21:43:41 » |
|
@wefgef - se putea da inputul printr-o formula. Si mie mi se pare putin aiurea sincer sa fiu sa te chinui atata sa optimizezi o problema din arhiva educationala.
Scopul arhivei educationale e sa aprofundeze un algoritm si nu sa ne abatem de la subiect pe metode de generare ale inputului. Se poate lua usor 100 si folosind printf/scanf, trebuie doar sa folosesti O(N) timp si O(1) memorie, adica solutia optima.
|
|
|
Memorat
|
Am zis
|
|
|
•Addy.
Strain
Karma: -4
Deconectat
Mesaje: 30
|
|
« Răspunde #23 : Februarie 27, 2009, 12:16:44 » |
|
cu aceeasi sursa, si anume asta am luat pe rand 80, 90, 95, etc. LE: nvm, am reusit.
|
|
« Ultima modificare: Februarie 27, 2009, 16:45:44 de către Adrian Draghici »
|
Memorat
|
|
|
|
•Marius
|
|
« Răspunde #24 : Februarie 27, 2009, 18:02:06 » |
|
cu aceeasi sursa, si anume asta am luat pe rand 80, 90, 95, etc. LE: nvm, am reusit. Punctajul nu era 100 pentru că nu aveai memorie O(1).
|
|
|
Memorat
|
Faceti lucrurile simplu: pe cat de simplu posibil, dar nu mai simplu.
|
|
|
|