Afişează mesaje
|
|
Pagini: [1] 2 3 ... 7
|
|
8
|
Comunitate - feedback, proiecte si distractie / Feedback infoarena / Răspuns: Probleme GRAVE de evaluare - Problema Ecuatii2
|
: Iunie 06, 2015, 01:28:19
|
Sa ne calmam un pic  La problema asta exista rezolvari de 100 de puncte trimise destul de recent. Faptul ca obtii rezultate corecte pe sistemul de acasa ma face sa cred ca diferenta vine de la sistemul de operare. Pe Infoarena evaluarea se face in GCC pe Linux, configuratie care a devenit oarecum standard la toate concursurile serioase. Iti recomand sa folosesti tot un sistem bazat pe UNIX si sa verifici daca nu cumva modul in care faci citirea este defectuos.
|
|
|
|
|
11
|
infoarena - concursuri, probleme, evaluator, articole / Informatica / Răspuns: Program de detectat erori
|
: Februarie 04, 2015, 09:51:05
|
|
Pe scurt: nu.
Pentru prima intrebare: overflow-ul nu este perceput ca o eroare, procesorul aduna bit cu bit pana cand se termina toti bitii fara sa aiba vreo informatie despre tipul de date. Dar este foarte usor sa tratezi astfel de cazuri.
Pentru a 2-a intrebare: in cazul unei situatii de tipul array[-1] ("array out of bounds") C-ul are un comportament nedefinit (pur si simplu se acceseaza o zona de memorie aiurea dupa care se poate intampla orice). C++ iti ofera posibilitatea de a trata exceptiile intr-un mod mai organizat (try...catch), dar este tot datoria ta sa le detectezi/anticipezi.
|
|
|
|
|
13
|
infoarena - concursuri, probleme, evaluator, articole / Informatica / Răspuns: Parametrii functiei main
|
: Decembrie 29, 2014, 09:35:38
|
Pentru a pasa argumente unui program, functia main trebuie sa aiba urmatoarea semnatura: int main(int argc, char **argv) unde argc va avea la rulare o valoare egala cu numarul de argumente (argument count), iar agv va fi un vector de stringuri (argument values). De notat ca primul argument (argv[0]) va fi mereu numele programului. Nu este obligatoriu ca aceste variabile sa se numeasca argc si argv, insa asa cum ai intuit aceasta este notatia consacrata si iti recomand sa o folosesti pentru claritate. De exemplu, daca am rula un program astfel: atunci variabilele argc, respectiv argv la intrarea in program vor arata astfel: argc = 4 argv = { "program", "ab", "cd", "123" }
Observi ca argumentele sunt separate prin spatii, daca vrei ca un argument sa contina spatii in interior va trebui sa il pui intre ghilimele duble.
|
|
|
|
|
24
|
infoarena - concursuri, probleme, evaluator, articole / Algoritmiada 2014 / Răspuns: Feedback Runda 3
|
: Iunie 09, 2014, 21:23:10
|
Sliding Window Parcurgem numerele si retinem ultimele D + 1 intr-un multiset. Cand inseram o valoare noua, cautam care e cea mai mare valoare mai mica sau egala cu ea si cea mai mica valoare mai mare ca ea. Astfel, putem actualiza raspunsul la fiecare inserare. Complexitatea este O(N * logD).
De mentionat ca problema admite si o solutie O(N) O(NlogK) teoretic. Dau o bere sau 5GB pe Dropbox cui o scoate 
|
|
|
|
|
25
|
infoarena - concursuri, probleme, evaluator, articole / ONIS 2014 / Răspuns: ONIS 2014 Feedback
|
: Mai 22, 2014, 22:06:14
|
|
Am verificat testele si iti pot garanta ca sunt ok. O singura linie din output este diferita fata de rezultatul tau, iar raspunsul tau nu este corect (am verificat manual, fiind chiar un rezultat cu R = 2 = 1+1). Posibil sa ai un overflow undeva...
L.E. am mai sapat putin prin sursa ta si am ajuns la concluzia ca "rezultatul tau = rezultatul meu % modulo". Ai grija la cat de mare poate fi raspunsul.
|
|
|
|
|