Blog infoarena

Retrospectiva Anului 2020

alexpetrescu
Petrescu Alexandru
29 decembrie 2020

Infoarena şi concursurile comunităţii

În lipsa Algoritmiadei, comunitatea s-a mobilizat să creeze şi să participe la câteva concursuri Infoarena.

  • Concurs de încălzire: născut din tensiunea aşteptării olimpiadei naţionale. Poate primul concurs românesc la care comisia s-a jucat cu limbajele de programare, aşa încât sursele oficiale sunt scrise în C++, Java şi Python. Legenda spune că testele au fost făcute în Haskell...
  • Junior Challenge: un succes încoronat cu premiul oferit câştigătorului; prima probă desfăşurată în pace, a doua... cât de cât :-)
  • Summer Challenge: foarte atipic. Cei care au pregătit problemele au aflat că nu toate concursurile au o comisie pe deplin centralizată: fiecare cunoştea doar problema de care se ocupa, pe celelalte le-au descoperit odată cu participanţii. Aceştia din urmă au aflat că probe cu 2 probleme de tipul ~output-only & aproximativa (din care una bazată pe geometrie şi alta pe expected value), şi una pe bună dreptate numită Voodoo, nu se dau numai la olimpiadele internaţionale. Eu unul am aflat că dacă vrei ca lumea să participe la un concurs de vară, data trebuie măcar să nu coincidă cu ziua afişării rezultatelor la BAC
  • Autumn WarmUp: poate primul concurs pregătit aproape complet cu 10 zile înainte de desfăşurarea sa. Una din probleme este aproape aceeaşi cu o alta, din 2015, doar că promovează o soluţie mai eficientă. Ce m-a impresionat e că, la nici 2 săptămâni după concurs, retrogradLucian Bicsi retrograd şi freak93Adrian Budau freak93 au găsit, independent, alte 2 soluţii şi mai eficiente, foarte diferite între ele. Cea a lui Lucian poate fi adaptată în aşa fel încât să rezolvăm o problemă de la Concursul de încălzire într-o complexitate mai bună decât cea oficială, dând naştere unor articole şi unei postări pe blog
  • Winter Challenge: Goodbye 2020. L-aş numi concursul-"priveghere". Cele 4 probleme au permis concurenţilor să se expună unor paradigme diverse. Pe de o parte, recapitulative. Pe de altă parte, food for thought pentru vacanţa de iarnă.

L-am rugat pe TincaMateiTinca Matei TincaMatei să ne spună cum a fost experienţa de propunător la Junior/Summer Challenge:

Am învăţat multe lucruri din participarea în comisie, şi acum înţeleg mai bine problemele cu care se confruntă propunătorii la un concurs. Propunerea de probleme ar fi un alt tip de antrenament şi ar fi un prim pas în afara competitive programming-ului. Ca membru al comisiei, pe lângă problema propriu-zisă pe care o propui, apar mai multe „subtaskuri” separate, precum: generarea testelor, calibrarea timpilor şi a subtaskurilor, scrierea de cât mai multe bulăneli pentru a le preveni, scrierea enunţurilor sau a editorialelor.

Matei ne-a împărtăşit mai multe gânduri foarte folositoare. Voi relua încheierea mesajului său la finalul postării.

InfoPro

Printre cele mai importante, dragi şi decisive iniţiative ale comunităţii este InfoPro. Mulţumim întâi şi întâi profesorilor care s-au dedicat cu pasiune şi determinare desăvârşită acestui proiect!

Pentru acest subiect, am onoarea să dau cuvântul lui bciobanuBogdan Ciobanu bciobanu:

Cred că finalul acestui an a fost un moment foarte bun pentru concursul InfoPro. Încercăm ca fiecare ediţie a concursului să se adreseze în egală măsură tuturor participanţilor, indiferent de nivel. Participarea în regim de concurs este la fel de importantă ca rezolvarea problemelor din arhive, iar cu acest concurs sper că am adus în atenţie acest lucru. Cât pentru comisie, este un exerciţiu organizatoric foarte bun, pentru că nu am mai organizat concursuri online cu mii
de participanţi. Direcţia pe care o urmărim este cea a olimpiadelor internaţionale. Problemele tehnice întâlnite aici ne vor ajuta să înţelegem cum putem extinde cel mai bine un sistem de feedback complet online şi ne pregăteşte pentru ce va urma în cadrul olimpiadei de informatică din România. Cât despre InfoPro, putem să ajungem la nivelul unor concursuri ca USACO sau COCI.

IOI

Nu ştiu cine a pus aceasta la cale, dar cele 4 medalii româneşti au fost obţinute de Alexandru, Maria Alexa, Alexandra Maria şi George Alexandru. Îi felicităm pentru succes, alături de toţi ceilalţi medaliaţi la celelalte olimpiade online ale anului, netrecând sub tăcere trei "curiozităţi" îmbucurătoare:

Oxford: licenţă

Despre succesul uimitor al unui român la proiectul său de licenţă la Computer Science, Oxford, s-a vorbit mai pe larg într-o altă postare pe blog. Fără să schimb contextul, vreau să subliniez felul în care s-au acoperit de glorie (şi anul acesta) tamionvTamio Vesa Nakajima tamionv şi Andrei1998Andrei Constantinescu Andrei1998 prin obţinerea celor mai mari două note finale dintre toţi absolvenţii promoţiei 2020 ai facultăţii menţionate.

Mesajul de încurajare e foarte clar. Nu e întâmplător că cei despre care acum spunem "Uite-i, de-ai noştri, cum se întrec pe podium în universităţi de top!" sunt aceiaşi cu cei despre care acum câţiva ani spuneam "Uite-i cum se străduiesc să cucerească concursurile de informatică!" E o realitate, că şansa pe care o au liceenii să studieze algoritmica şi aşa-numitul competitive programming este una uriaşă, şi în sine o sursă de motivaţie şi bucurie.

Vreme trece, vreme vine

Cu peste 14 luni în urmă, în chip aproape profetic, am lansat infoarenauţilor o chemare. Spun profetic deoarece conceptul că fiecare dintre noi poate contribui la creşterea valorii comunităţii poate că e mai important ca niciodată. Confiscarea olimpiadelor ne îndeamnă să ne facem singuri dreptate. Să dăm dovadă că formăm un corp sănătos şi puternic! Pentru început, vă invităm să scriem editoriale, mai ales la problemele care nu au unul.

Avem motive să fim optimişti că vom putea organiza în continuare concursuri online, ca mângâiere că nu putem să ne întâlnim încă. Pun problema aşa, pentru a sublinia că tot ce se mişcă în comunitate este pe bază de voluntariat. Profesori, concurenţi, organizatori, sponsori, comisie tehnică, comisie ştiinţifică. Fiecare îşi găseşte locul său. Esenţial e faptul că fiecare dintre noi o face de bunăvoie, cu responsabilitate şi nu fără sacrificii. Ne unim din pasiune pentru informatică şi din drag de colegi.

Aşteptăm să ne revedem cu bucurie! Sper că prin această răbdare ne vom întări să lucrăm cu mai multă mărime de suflet.

 Comentarii (0)

Categorii:

98

alexpetrescu
Petrescu Alexandru
22 decembrie 2020

Doresc să vă împărtaşesc un nou succes al comunităţii informatice din România. Vara aceasta unul dintre membrii săi a obtinut cea mai mare nota all-times pentru lucrarea sa de licenţă la Universitatea Oxford. Vă propun să ne bucuram cu ţotii de acest eveniment şi să ne hrănim cu invăţăturile acestei lucrări.

De ce e atât de wow!

Ca să inţelegem mai bine ce inseamna această notă de 98 din 100, am selectat câteva informaţii bine-cunoscute românilor studenţi la informatică în Oxford:

  • Lucrarea de licenţă este un proiect la care lucrezi cu un profesor specializat în domeniul tău de interes. Rezultatul este, practic, un fişier pdf constând în cel mult 10 000 de cuvinte.
  • O lucrare excelentă primeşte în jur de 70 din 100 de puncte.
  • Notele de peste 80 sunt rezervate lucrărilor demne de publicat într-un jurnal sau la o conferinta, sub forma unui paper.
  • Convenţiile de examinare recomandă ca în jur de 5% dintre lucrări să primeasca o nota în intervalul 80-90.
  • Cea mai mare nota cunoscută nouă este obţinută anul trecut tot de către un român, lucrare cotată cu 91 de puncte.

Despre ce e vorba in proiectul de 98

Domeniul se numeşte 'Computational Social Choice', şi este stiinţa ce studiaza dintr-o perspectiva algoritmică orice conţine cuvintele alegători şi candidaţi. În general, un alegător are preferinţe, pe care cel mai des şi le exprima ordonând candidaţii dupa valoarea lor în ochii lui. De exemplu, într-o alegere pentru cea mai bună fetiţă Powerpuff, alegătoarea Bessie ordonează candidaţii astfel: Blossom > Bubbles > Buttercup. Date fiind preferinţele alegatorilor, se pune problema determinării câstigătorilor (unul sau mai mulţi!) într-un mod cât mai echitabil. Cuvântul echitabil este intenţionat vag, deoarece explicitarea lui în diverse modaliţăti dă naştere diverselor sisteme concrete de votare pe care le folosim (e.g. sistemul cu două tururi folosit pentru alegerile prezidenţiale).

L-am rugat pe Andrei1998Andrei Constantinescu Andrei1998 să facă un rezumat al detaliilor algoritmice ale proiectului său.

Îi dau cuvantul:

Cu toate că domeniul isi are originile in politică şi economie, ceea ce poate frapa este caracterul izbitor algoritmic al problemelor de interes. Nu voi intra foarte adânc in amănuntele de Social Choice ale proiectului, dar cred că ar fi interesant pentru comunitate să explic în ce masură cunoştinţele din liceu ajută mai departe în cercetare. Iata câteva exemple de tehnici de la concursurile de algoritmică pe care le-am folosit pentru a obţine complexităţile îmbunătăţite din lucrare:

  • Tehnica "Parametric Search", care a apărut în scena programării competiţionale o dată cu problema Aliens de la IOI 2016. Tehnica a mai fost folosită ulterior în problema Popcorn, iar membrii comunităţii au găsit soluţii alternative mai simple ce o folosesc în probleme propuse în trecut: Padurari şi Flooow.
  • Optimizarea "O(nk^2) devine O(nk)", care a apărut în România o dată cu problemele Arbkset, Lianyu şi Cli. Aceasta este o rafinare a mai cunoscutei "O(n^3) devine O(n^2)", folosită în probleme precum: Politic, Purification şi Tricolor. Dacă nu aţi auzit de acest smen, puteţi citi o superba explicaţie începând cu pagina 22 de aici (problema Barricades).
  • În afara programei de olimpiadă: Algoritmul Simplex. Cu toate acestea, problema Echilibrare admite o soluţie inedită, alternativă, folosind această tehnică; pentru majoritatea elevilor, Simplex nu e mai mult decât un "black-box". Aside: Având în vedere soluţia oficială a problemei, ce putem înţelege, sau intui, din acestea? Există strânse legături între problemele de flux întâlnite la olimpiada, forma lor matriceala şi problemele lor duale de optimizare. Nu nu, nu o să explic ce am vrut să zic cu asta - să vă provoc şi pe voi puţin!

Sistemul de vot pe care îl studiem se numeşte Chamberlin-Courant, şi este destul de uşor de descris. Avem n candidaţi şi m alegatori, fiecare alegător exprimându-şi preferinţele prin liste ordonate de preferinţe. Pentu un k dat, scopul este să alegem un comitet câstigător format din k candidaţi, adica unul de cost minim. Cum calculăm costul? Pentru fiecare alegător număram candidaţii mai bine văzuţi de către el decât toţi aleşii din comitetul de k, şi apoi adunăm la costul total acest număr. De exemplu, dacă primele opţiuni ale tuturor alegătorilor formeaza o mulţime de cel mult k candidaţi, atunci comitetul câstigător va avea cost 0! Din păcate, problema generală este NP-hard, dar nu este totul pierdut, deoarece în alegeri reale preferinţele candidaţilor nu sunt arbitrare, sau "worst-case", aşa cum ne obisnuiesc temerarii comisiilor, ci au destul de multa structură. În ce sens au structură? Depinde - esenţa este să restrângem domeniul de preferinte suficient de puţin încât să putem înca modela alegerile reale, dar şi suficient de mult încât să putem rezolva problema în timp polinomial. Nu zic mai mult să nu plictisesc!

Totuşi, cel mai mare efort pentru mine a fost acela de a prezenta noile rezultate clar şi fără "leap"-uri în raţionament. Am observat în general o oarecare superficialitate când vine vorba de asta - de foarte multe ori într-un salt în raţionament se ascunde o greşeală extrem de subtilă. În sensul ăsta, vă las cu o anecdotă: primul rezultat pe care l-am avut a constat pur şi simplu în a citi un paper vechi de aproximativ 5 ani. Am observat cum autorii prezentau un algoritm polinomial bazat pe programare dinamică pentru o problema pe arbori, dar algoritmul era redactat de aşa natura încât micile greşeli de scriere (cum ar fi un ' uitat aici, un indice dincolo) se aliniau perfect cât sa dea naştere unui algoritm care părea corect. Şi mai interesant, în funcţie de cum corectai typo-urile, fie devenea greşit, dar polinomial, fie corect, dar atunci analiza complexităţii nu mai mergea dusă la capăt (algoritmul devenea exponenţial pe un arbore stea, aşa cum arătăm în paper-ul complet). Ironia este că am fost la un milimetru să zic "mda, are sens, probabil e corect", cum nu înţelegeam încă toate notaţiile şi ideea centrală părea naturala. Totuşi, ceva tot parca nu se lega şi eram încăpăţânat! Fast-forwarding, am găsit un algoritm nou pentru problemă, unde am putut folosi chiar optimizarea menţionată în lista de tehnici de la olimpiade de mai sus.

Două gânduri

Andrei a fost de acord cu mine că nota a fost obţinută după un efort considerabil de a explica cât mai bine cum curg ideile una din alta. Nu era suficient să fie clar, trebuia să şi pară natural şirul logic al ideilor prezentate. După aceasta "dezvăluire a secretului", aş încheia postarea cu un mesaj de încurajare adresat juniorilor, seniorilor şi studenţilor nostri, din partea lui Andrei:

Mi se par sincer prea puţini aceia care îsi doresc o carieră în cercetare, şi sunt uimit de numărul covârsitor al oamenilor, în unele cazuri medaliaţi chiar şi cu aur la olimpiadele internaţionale, care nici nu iau în calcul această variantă. Industria tech nu trebuie văzută ca un life goal după olimpiade - există atât de multe lucruri stimulante intelectual în cercetare şi pe care nu le vei găsi niciodată în industrie, lucruri care pot aduce o satisfacţie extraordinară - de la a învăţa lucruri noi şi până la descoperi o nouă teorie, poate chiar ceva ce poate salva vieţi!

 Comentarii (0)

Categorii:

Nave Ordonate

alexpetrescu
Petrescu Alexandru
28 septembrie 2020

De dorul intalnirilor care aveau loc in anii mai darnici in concursuri onsite, simt sa va impartasesc cateva idei, vechi si (mai ales) noi, de rezolvare a unor cerinte. As dori sa deschid o discutie tehnica inspirata de noile solutii eficiente descoperite la problemele Nave (in varianta initiala sau de actualitate) si Ordonare. Mi se ofera astfel ocazia sa implic intreaga comunitate: am structurat postarea in asa fel incat fiecare pasionat, indiferent de experienta sa in algoritmica, sa gaseasca o idee deosebita si o cerinta care sa il intrige. Mai mult: cu cat veti dori sa studiati mai adanc subiectul propus, cu atat mai multe lucruri frumoase veti descoperi. Pentru a nu va incurca din a gasi singuri tainele acestea, am ascuns prin linkuri orice cuvinte si referinte la detaliile tehnice ale solutiilor.

Enunturile

Dandu-se un sir de N numere intregi, numim operatie schimbarea uneia (la alegerea noastra care anume) dintre valorile sirului, fie ea x, in x - 1 sau x + 1 (la alegerea noastra).

Pe scurt, problema Ordonare cere gasirea numarului minim de operatii pentru a transforma sirul dat intr-unul care are toate elementele distincte.
Problema Nave, spoiler, cere ceva asemanator: dandu-se si un numar pozitiv K ≤ N, gasiti numarul minim de operatii pentru a transforma un sir dat intr-unul care are cel putin K elemente distincte. Adica numarul de valori care apar cel putin o data in sirul obtinut este cel putin K. Daca veti citi enuntul, totusi, veti vedea ca pare mai complicat decat ce spun aici, deoarece sirul din input e de perechi de numere si operatiile sunt 2-dimensionale. Incercati sa demonstrati ca simplificarea pe care am facut-o este justificata. Cand va poticniti, aruncati un ochi la hint.

Pentru restul discutiei, vom presupune ca sirul este gata citit si gata sortat (putem sorta inputul fie cu std::sort, fie, de dragul complexitatii, dar intinand simplitatea implementarii, cu radix sort), si vom analiza solutiile plecand din acest punct.

Intrepatrunderea Cerintelor

Ce nu am mentionat inca este marimea valorilor din sir. In problema Ordonare, ele sunt, in modul, mai mici ca 109. Dincolo, desi in enunt scrie 104, voi creste dificultatea problemei si voi spune ca sunt restrictionate sa fie maxim 2N. Practic, problema Ordonare pare mai complicata deoarece valorile pot fi mai mari.

Dintr-o alta perspectiva - mai exact, ignorand faptul ca limitele pentru valori sunt diferite - Ordonare este o subproblema a cerintei de la Nave: daca facem un subtask al problemei Nave in care garantam K = N, obtinem exact enuntul de la Ordonare.

Reducerea

Acum vom face o transformare a problemei Ordonare in asa fel incat sa devina cu totul o subproblema a noului enunt de la Nave. Tot ce ne trebuie este un algoritm (daca se poate, liniar, ca sa fim siguri ca am facut reducerea fara sa afectam in vreun fel complexitatea finala) care sa rezolve urmatoarea problema:

Se da un sir de N numere intregi cu valori oricat de mari. Sa se construiasca un sir de N numere cu valori intre 0 si 2N care sa fie echivalent cu primul, din punct de vedere al cerintei problemei Ordonare.

Ce ne dorim este un fel de normalizare, care sa fie justificata in contextul cerintei noastre. Spre exemplu, sirul 5 38 38 38 40 40 40 43 43 43 se poate normaliza la 0 15 15 15 17 17 17 20 20 20, intrucat distantele relative dintre valori s-au pastrat, mai putin in cazul 5 - 38, care a devenit 0 - 15, doar ca aceasta schimbare nu poate afecta rezolvarea problemei Ordonare: orice operatii am face pe valorile ≥ 38 (respectiv 15) intr-o solutie optima, nu se vor putea apropia de valoarea 5 (respectiv 0) (care e clar ca in solutia optima nu va suferi vreo modificare).

Va invit sa rezolvati si sa implementati problema aceasta. As zice ca e excelenta pentru un interviu de algoritmica si programare - aceasta afirmatie nu mi-ar fi trecut prin cap acum un an, dar asa e cand cresti :-) Va puteti ghida dupa aceasta descriere a solutiei cand va mai poticniti.

Cateva solutii posibile

Dupa cum puteti intui din subtaskurile problemelor, exista multe solutii, de diverse complexitati, care le rezolva. Puteti vedea, in aceste linkuri, editorialele de la problema Nave Planare, respectiv Interdimensionale, precum si de la Ordonare. Cu toate acestea, discutia care urmeaza nu se foloseste decat intr-o mica masura de aceste descrieri.

Ordonare: O(N), fara reducere

Solutia oficiala (care nu face reducerea de care am vorbit mai devreme) are complexitatea O(N logN). Cu toate acestea, particularitile problemei fac in asa fel incat sa pastram operatiile dar sa schimbam structura de date si sa obtinem complexitate liniara!

Am pregatit un hint care va deslusi care este structura aceasta de date. Incercati sa va prindeti cum se poate folosi. Am scris si un scurt articol care descrie noua solutie.

Puteti gasi aici o implementare usoara a ideii. Problema e ca are comportament patrati pe anumite teste. Sursa se poate modifica usor, asa cum puteti vedea in aceasta poza la un text-compare cu implementarea corecta, pe care o puteti gasi aici.

Nave: O(N logN), raspunde pentru toate valorile lui K

freak93Adrian Budau freak93 a gasit un algoritm eficient care gaseste raspunsul pentru K = 1, apoi adapteaza structura pentru K = 2, si tot asa, pana ce determina raspunsul pentru toate valorile lui K, pana la K = N. Va recomand sa va ganditi cum se poate obtine o solutie atat de indestulatoare, dar, pentru moment, va pun linkuri doar la o sursa in Rust si la cateva hinturi: 1, 2, 3, 4.

Pana acum deja am avea cele mai bune solutii la care puteam spera la ambele probleme, dar sunt foarte diferite intre ele. Exista, totusi, un algoritm, care se poate folosi de faptul ca problemele sunt asa de asemanatoare, si, dupa ce face reducerea problemei Ordonare la un subtask al problemei Nave, obtine:

O(N logN) la Nave & adaptabila sa obtina O(N) la Ordonare

Punctul culminant al postarii - si motivul principal pentru care ea exista - este solutia la Nave a lui retrogradLucian Bicsi retrograd. Tin sa mentionez ca este foarte diferita de toate celelalte.

Mai intai, vom face o transformare a sirului dat, intr-o reprezentare echivalenta, si anume un sir de 2N frecvente, input[i] = numarul de valori egale cu i din sirul dat.

Pentru a va ghida spre patrunderea ei, am pregatit o serie de hinturi (1, 2, 3, 4, 5, 6), un mic articol care merge mana in mana cu indiciile, precum si doua surse foarte asemanatoare, bine comentate si codate cat mai clar. Prima mi se pare mai intuitiva, iar a doua (recomand text-compare.com) urmeaza ceva mai indeaproape implementarea originara a lui Lucian.

Odata ce intelegeti solutia aceasta, puteti rezolva (si o puteti privi ca pe o tema) si problema Ordonare, doar ca in timp liniar (reminder: dupa ce faceti reducerea!). In caz ca nu-i dati de cap, iata un indiciu. Avantajul aici e ca multe detalii la care trebuia sa aveti grija la Nave nu mai conteaza, deci sursa e mai lejer de scris.

Va recomand sa si implementati aceste idei. Nu numai ca doar asa va puteti asigura ca ati inteles intru totul fenomenul (si va spun asta din proprie experienta), dar este o provocare fascinanta sa duci aceste surse la capat, adica la 100 de puncte.

 Comentarii (0)

Categorii:

FIICode 2020

diac_paul
Paul Diac
07 februarie 2020

Sâmbătă 29 august de la ora 16:05 are loc finala FIICode online cu mirror open
Pagina fb a concursului Studenţii Facultăţii de Informatică Iaşi vă invită să participati la FIICode 2020!

FIICode se întoarce şi anul acesta cu forţe proaspete şi noi provocări pentru voi! A cincea ediţie ridică ştacheta şi aduce extinderea competiţiei la nivel internaţional pentru toate cele trei arii (Algoritmică, Web Dev şi Game Dev), reunind programatori talentaţi din ţară şi din afara ei.

Elevi şi studenţii cu cele mai bune rezultate la etapele online vor fi selectaţi pentru a participa la etapa finală la Iaşi, unde se anunţă o competiţie strânsă, premii şi multă distracţie! La aria de algoritmică, etapa de calificare constă în 3 probe ce se vor ţine pe platforma CSAcademy. Fiecare probă va consta în 3-5 probleme ce vă vor pune la încercare inventivitatea, capacitatea de a lucra sub presiune şi cunoştinţele de algoritmică.

Pentru mai multe detalii, accesaţi site-ul nostru https://fiicode.asii.ro/ şi urmăriţi-ne pe paginile de Facebook şi Instagram!

Vă aşteptăm la FIICode!

 Comentarii (0)

Categorii:

"Adolescent Grigore Moisil" International Programming Contest

xtreme77
Patrick Sava
25 ianuarie 2020

Sign Up

Da, povestea continua! Da, pentru cea de-a sasea oara!

De data aceasta, postul nu va fi la fel de lung ca de obicei pentru ca suntem in plina organizare si inca mai sunt de pus la punct multe detalii relevante atat pentru noi, cat si pentru voi.

Totusi, toate informatiile de pe site-ul oficial trebuie tratate ca atare (https://agm-contest.com/).

Au trecut cinci editii ale Concursului (acum International) de Informatica "Adolescent Grigore Moisil", care dintr-un punct (sper eu cat se poate de obiectiv) de vedere au atins un nivel calitativ cel putin similar cu nivelul asteptarilor publicului nostru. Deja, acest proiect pentru mine si multi dintre noi nu mai inseamna un simplu concurs, ci dovada ca se poate!

Pentru cei care nu sunt familiarizati cu povestea din spatele acestui proiect, am sa incerc sa rezum in cateva propozitii cine suntem, de unde am pornit, cum am pornit si la urma urmei, unde vrem sa ajungem.

In perioada 2013-2016 am fost elev al Colegiului National "Spiru Haret" din Bucuresti. Pana acum, un aspect nu foarte relevant al povestii, dar totusi edificator.

Sunt o gramada de persoane de pe aceasta platforma care concureaza la Olimpiada de Informatica si au avut, au si vor avea cu siguranta rezultate mult mai bune decat am avut eu in perioada petrecuta ca elev. Totusi, am considerat mereu ca acest fenomen (in speta, "competitive programming") nu se rezuma numai la a avea rezultate (chiar daca acestea au o deosebita valoare in eticheta profesionala pe care fiecare dintre noi o avem). Mereu am separat lucrurile si am privit toata aceasta aventura traita de-a lungul concursurilor si olimpiadelor ca pe un prilej de a ma dezvolta din punct de vedere profesional in aceeasi masura ca unul de a evolua pe plan social. Networking. Da, networking. Cam de aici a pornit si povestea A.G.M.

In 2015, a existat practic un concurs de proiecte pe stilul "YouthBank". Actually, cam asa se si numea (in prezent, nu imi este foarte clar daca inca mai exista in Romania). Pe scurt, tu veneai cu o idee pe care voiai sa o pui in aplicare, dar aveai nevoie de fonduri pentru acest lucru si tocmai de aceea scriai planul proiectului, la pachet cu bugetul si multe alte documente necesare si trimiteai o aplicatie in speranta ca ideea ta va fi aleasa pentru a fi finantata. Well, au fost si ceva interviuri dupa etapa asta, dar aici deja "mingea era in terenul tau" --- in functie de cat de convingator erai, sigur, puteai primi aceasta finantare.

Ceruseram o suma de genul 3000 de lei, dar am primit doar 1200 de lei. Doar atat si doar cu atat am si tinut prima editie a A.G.M. Eram eu, impreuna cu conducerea liceului (de mentionat entuziasmul si suportul doamnei Petronia Dumitrescu) si o echipa restransa de voluntari (elevi ai C.N.S.H.B).

Am format mai apoi o comisie stiintifica, in care toti membrii erau persoane cunoscute numai si numai prin intermediul olimpiadei. Aveam si am un respect enorm pentru ei, infinit. Pe deasupra, eram uluit de cum dam nastere a ceva ce si acum exista (si va promit eu ca povestea va merge mai departe!).

Astazi, din actorii principali ai povestii care a inceput in 2015, mai joaca in afara de mine: Petronia Dumitrescu, george_stelianChichirim George george_stelian , teoionescuIonescu Teodor teoionescu si PlayLikeNeverB4George Marcus PlayLikeNeverB4. Daca acesta ar fi fost un discurs tinut in fata dumneavoastra, v-as fi cerut sa ii aplaudati! Dar nu cred ca este o problema, probabil multi dintre cei care citesc acum acest post, vor avea ocazia de a o face la runda finala!

Comisia organizatorica nu este complet definitivata, dar stim ca anul acesta avem o premiera: cineva care a avut rezultate bune si foarte bune la olimpiada este "sacrificat" pentru a se implica in partea de organizare a concursului. A sunat dramatic, nu? Poate chiar tragic? Nici pe departe. A sunat grozav, pentru ca usureluflorianUsurelu Florian-Robert usureluflorian se descurca de minune in rolul in care a fost "instalat" si sunt convins ca spusele mele urmeaza a fi confirmate si de fapte de-a lungul acestei editii (si desigur, nu numai).

Comisia stiintifica...hmm, vladm98Munteanu Vlad vladm98 este ca anul acesta bagam cod, dar nu o mai facem si overnight? mihneacazCazacu Mihnea mihneacaz, HumikoPostu Alexandru Humiko? geniucosOncescu Costin geniucos scuze ca am propus problema ta fara sa te anuntam. Haha, it's been a funny story here.

Actorii din scena de mai sus impreuna cu GinguIonutGinguIonut GinguIonut, cosmin79Carabet Cosmin Andrei cosmin79, Alex18maiAlex Enache Alex18mai, Eman98Ghinea Mihail Emanuel Eman98, Stefan_RaduStefan Radu Stefan_Radu, LucaSeriSeritan Luca LucaSeri, bogdan10bosBogdan Sitaru bogdan10bos, Mihai22eMihai Ionut Enache Mihai22e si theodor.moroianuTheodor Moroianu theodor.moroianu alcatuiesc comisia stiintifica si tehnica. An endless round of applause for all of them!

Acestea fiind spuse, 3, 2, 1 .... start! Ne vedem pe 8 februarie!

Sign Up

 Comentarii (0)

Categorii:

Retrospectiva Anului 2019

alexpetrescu
Petrescu Alexandru
15 septembrie 2019

Fără să fie o surpriză pentru cineva, am ajuns, iată, la finalul anului 2019. Vă invit să reluăm împreună câteva momente şi realizări ale comunităţii de informatică din România, în particular din viaţa Infoarena, din acest an.

Multe concursuri, multe premii

Vreau mai întâi să evidenţiez numărul mare de competiţii din ţară şi din străinătate care au captat atenţia concurenţilor români. Părerea mea e că fiecare concurs (fie onsite, fie online) are o valoare deosebită, mai întâi pentru că aduce laolaltă participanţi (voluntari, organizatori ~ în cazul onsite) şi membri ai comisiei în jurul problemelor de informatică. Dincolo de frumuseţea rezolvării şi compunerii de subiecte în sine, văd în această străduinţă şi pasiune a noastră şi o bună ocazie de cunoaştere de sine, respectiv de autodepăşire şi creştere în general. Am făcut o selecţie, pe baza experienţei personale, pentru a vă încuraja să luaţi parte la câteva din concursurile preferate ale românilor (lista restrânsă şi subiectivă):

  • loturile şi Olimpiada: Judeţeană, Naţională, Europeană (juniori), Tuymaada (Yakuţia), Central-Europeană, Balcanică, Internaţională
  • marca Infoarena: Algoritmiada, Junior Challenge, Summer Challenge, Autumn WarmUp
  • pe echipe: pentru studenţi - ICPC, RPCP, pentru 'tineri' - IIOT, AGM
  • alte concursuri desfăşurate în România - RMI, FiiCode, ProSoft, Catalyst Coding Contest, Info Oltenia, FMI No Stress, Empowersoft
  • alte olimpiade şi concursuri din străinătate, la care participarea se realizează adesea online, dar şi onsite în anumite condiţii: IATI (Shumen), Olimpiada Baltică, Olimpiada Zhautykov (Kazahstan), Olimpiada Moscovei, USACO, COCI
  • online, mai frecvente, precum Codeforces şi Atcoder

Îi felicit pe cei care au luat parte la aceste concursuri şi încurajez întreagacomunitate să se implice cu perseverenţă în astfel de activităţi, deoarece sunt foarte folositoare şi distractive. Subliniez că pentru concurenţi, experienţaconcursului este completă doar după ce problemele rămase nerezolvate sunt abordate ulterior (upsolving!). Desigur, recomand rezolvarea problemelor de la ediţiile anterioare (pe multe le puteţi simula local, pe infoarena sau oj.uz), precum şi multă pregătire eficientă în arhivele de probleme în general. Românii concurează cu drag şi cu succes la ele, aşa că oricând veţi putea găsi sprijin în impas.

Re: Girl Power

Întrebări de acum 3 ani îşi găsesc acum răspunsuri care nu pot decât să ne încânte:

  • Alexa2001Alexa Tudose Alexa2001 câştigă balcaniada de seniori! Prin ea, 2019 devine al patrulea an la rând când locul 1 la BOI e obţinut de români

Laura ne-a făcut bucuria (după cum mi-a dat de înţeles, reciprocă) să ne împărtăşească câteva gânduri legate de concurs:

Din punctul de vedere al competiţiei, în prima zi punctajele au fost mult mai mari decât ne aşteptam şi competiţia mult mai strânsă. Anticipam că a două zi o să fie mai grea, lucru care a fost amplificat şi de problemele tehnice, Theo simţind asta cel mai bine. Mi-a plăcut foarte mult, a fost mai mult ca o tabără. Atmosfera a fost destinsă, super chill şi caterincă. Cred că la asta a contribuit că noi 4 ne înţelegeam foarte bine, Hamzat – ghidul nostru, dar şi că i-am avut pe Dani şi domnul Szabo ca team leaderi. Ne-am împrietenit cu mulţi concurenţi, am vizitat şi Doha pe drum, şi per total a fost o experienţă mişto.

Succesul din Portugalia

Finala ICPC, desfăşurată în Porto, a fost o nouă ocazie ca foştii liceeni români care au îmbogăţit România cu strălucitoare medalii la competiţiile internaţionale să se reafirme, de data aceasta din partea Universităţii Oxford. Astfel, echipa formată din:

A obţinut locul 16 la concurs! Rezultatul este unul nesperat pentru o echipă de români, întrucât s-au apropiat ca nimeni alţii de câştigarea unei medalii.

Alex, care a luat şi cele mai mari note la examenele primului an dintre toţi cursanţii (dând continuitate acestui obicei românesc, vechi deja de câţiva ani - dar şi responsabilizând generaţiile următoare :-) ) departamentului de informatică al facultăţii, ne transmite un mesaj, din partea sa, dar şi a coechipierilor, legat de competiţie:

ICPC-ul a fost pentru noi o continuare a olimpiadelor din timpul liceului. Cu toate acestea, nu a fost chiar atât de uşoară trecerea de la concursurile individuale la cele pe echipe. A trebuit să dăm simulări săptămânale pentru a putea să lucrăm cu adevărat împreună. Cred că acesta este cel mai important skill pe care l-am dezvoltat de-a lungul acestei competiţii. E important să ştii să împarţi problemele, să le discuţi cu ceilalţi şi să accepţi că uneori ce gândeşti tu poate fi greşit. Legat de competiţie, au fost unele probleme cu editorul pe care noi îl foloseam. Acestea au făcut chiar mai clare rolurile noastre în echipă. În final, am reuşit să ne organizăm şi să obţinem un rezultat de care, cel puţin eu, sunt mândru. Le mulţumesc mult lui Costin şi Ştefan, dar şi coach-ului meu favorit, George. Ştiu, ştiu … vreţi să băgăm o simulare…

Juniorii

Competiţia cea mai importantă la care au participat elevii de gimnaziu a fost EJOI (desfăşurată, de data aceasta, în Slovenia) care a reunit 24 de ţări. În ambele zile de probe, a existat o problemă pe care un singur participant a reuşit să o rezolve cu punctaj maxim. Punctajul maxim obţinubil în fiecare zi a fost de 300 de puncte. Având aceasta în vedere, uimiţi-vă de rezultate:

Este un rezultat grozav, cel puţin comparabil cu cel de acum 4 ani, când România a câştigat la JBOI primele 3 locuri şi încă o medalie de bronz. Mie mi se pare că anul 2019 este pentru juniori unul nemaipomenit, foarte greu de întrecut, şi îi felicităm pentru succes, aşteptând cu nerăbdare rezultate deosebite şi după trecerea lor la seniorat. Că veni vorba...

Seniorii

Ca statistici simpatice, se poate nota că echipa de IOI a avut în componenţa sa 4 elevi de clasa a 12-a, dintre care nici unul nu mai participase la acest concurs, şi pe deasupra şi prieteni unii cu alţii. Aşa surprize au venit la pachet cu noutatea despre care am vorbit mai sus legat de fete la IOI. Competiţia a avut loc în Azerbaijan, de unde păstrez amintirea unei experienţe uluitoare...

Am alcătuit o listă cu medaliile obţinute din partea României şi la BOI (balcaniada s-a desfăşurat anul acesta în Grecia), CEOI (de această dată în Slovacia) şi Tuymaada (Yakuţia). Îi felicităm pe:

Infoarena de la 2019 la 2020

2019 a văzut 2 concursuri reînviate cu ajutorul comunităţii: Summer Challenge şi Autumn WarmUp. Tot cu ajutorul comunităţii am reuşit să ducem mai departe, poate şi mai bine ca în alţi ani, Junior Challenge şi Algoritmiada - aici vreau să menţionez cum şi juniorii se implică şi scriu editoriale, devenind dovezi vii că ajutorul se poate da la orice vârstă, chiar în orice circumstanţă.

Avem înainte un an plin de concursuri, la care străduinţa membrilor de comisie din ţară se va alătura celei a concurenţilor. Mi se pare că anul acesta a avut un nivel mai înalt de dificultate al problemelor la majoritatea olimpiadelor internaţionale, şi asta se poate vedea în punctajele mai joase cu care se obţineau poziţii bune în clasament. Aşadar, recomand tuturor o preocupare mai eficientă în studiul algoritmicii, în abordarea concursurilor, în sprijinirea comunităţii.

 Comentarii (0)

Categorii:

Algoritmiada Runda Finala 2019

alexpetrescu
Petrescu Alexandru
18 august 2019

Vă anunţăm cu mare plăcere că finala Algoritmiada 2019 va avea loc în perioada 21 - 23 septembrie, la Târgu Jiu. Mai multe detalii puteti gasi accesand pagina programului.

Puteţi găsi mai jos lista cu concurenţii calificaţi la runda finală. Daca aveti nelamuriri in legatura cu felul in care au fost alesi acesti concurenti puteti citi criteriile de departajare. Dacă credeţi că, conform regulamentului, sunteţi calificaţi la runda finală, vă rugăm să scrieţi un comentariu la acest post pentru a vă putea trece pe listă. De asemenea, rugăm şi pe ceilalţi concurenţi să verifice lista şi să ne semnaleze eventualele greşeli, deoarece această listă nu e finală şi poate suferi modificări. Dacă unii concurenţi nu pot participa, locurile lor sunt redistribuite.

Mentionam ca la juniori am reusit sa gasim doar 8 participanti la rundele PreOJI si Junior Challenge, prin urmare va rugam sa ne anuntati in caz ca am omis vreun concurent, pentru a ocupa toate cele 10 locuri pentru runda finala.

Ii rugam pe calificati sa ne confirme sau infirme participarea printr-un reply la mailul primit de la noi.

Calificati juniori

Calificati seniori

 Comentarii (0)

Categorii:

Promotie din partea Asociatiei unPi pentru scolari

alexpetrescu
Petrescu Alexandru
04 iulie 2019

Asociatia unPi pentru Scolari despre care am vorbit in blogul precedent a lansat o noua promotie infoarenautilor.

Ei vor oferi cate un Raspberry Pi Zero W Complete Starter Kit primilor 5 utilizatori infoarena (inregistrati pe site inainte de 30 Iunie 2019) care le recomanda o familie pentru unPi dacă aceasta familie aplica la unPi şi este selectata in final ca beneficiar unPi.

Va reamintim ca recomandarea se poate face printr-un e-mail la adresa [email protected].

 Comentarii (0)

Categorii:

Asociaţia unPi pentru şcolari şi Junior Challenge

alexpetrescu
Petrescu Alexandru
23 iunie 2019

Incepand cu anul acesta, juniorul castigator al concursului Junior Challenge va primi premiul unPi din partea Asociaţiei unPi pentru şcolari.

Asociaţia unPi pentru şcolari

Asociatia unPi pentru Scolari a lansat online pe 1 iunie 2019 proiectul #unPi. Iata ce ne scriu ei despre proiect:

Cu acest proiect #unPi vrem sa ajutam copiii din mediile defavorizate, din Romania, sa-si depaseasca in timp, prin munca si forte proprii, conditiile curente de viata. Si facem asta daruindu-le un mic calculator personal pe care l-am numit unPi (il puteti vedea ; este bazat pe platforma Raspberry Pi, de unde si numele "un Pi"), impreuna cu un ghid online, in limba romana, de utilizare si programare (in limbajul Golang) a unPi pe care il vom crea la https://go.unpi.ro

Avem astazi #17 unPi pe care vrem sa le distribuim cat mai variat in toata tara. O familie ce indeplineste conditiile (mediu defavorizat, au un TV cu un port HDMI, unul din parinti ori tutorele legal are un telefon Android) se poate inscrie si urma procesul de aplicare de la vreau.unpi.ro ; Orice persoana poate vota apoi online, prin email, orice aplicatie ori parinte/tutore (care a aplicat pentru unPi) via votez.unpi.ro

Elevii de pe platforma Infoarena care au rezolvat multe probleme si au un punctaj semnificativ pe site, ne pot recomanda prin email un copil de 10+ ani, defavorizat, din mediul/localitatea lor, dar copil muncitor/studios si dornic sa invete lucruri noi, a carui familie, parinte, ori tutore legal este dispus sa aplice pentru a primi unPi (mic calculator personal, nou) la vreau.unpi.ro ; va asteptam. Adresa de e-mail este [email protected].

Conditii pentru castigarea premiului unPi la concursul Junior Challenge

Premiul unPi se acorda juniorului cu cel mai mare punctaj in clasamentul cumulat al celor doua zile de concurs Junior Challenge.

Premiul unPi se acorda unei persoane diferite in fiecare an. Astfel, toti cei care au primit deja premiul intr-o editie anterioara participa in afara competitiei pentru premiu in anii urmatori.

Clarificare: Junior este acela care este absolvent al clasei a 8-a sau mai tanar.

Criterii de departajare

In caz ca sunt mai multi juniori cu cel mai mare puntaj intre juniori, care nu au mai primit premiu, doar unul dintre ei va primi premiul. Alegerea acestuia se va face pe baza urmatoarelor criterii, in ordine, pana cand se poate alege castigatorul:

a) Fiecarui concurent i se asociaza sirul de punctaje obtinute pe fiecare problema, sortat descrescator. Castigator e acela care are sirul mai mare din punct de vedere lexicografic. De exemplu, daca punctajele lui Ionescu sunt 100, 50, 15, 0, 0, 0 iar ale lui Popescu sunt 100, 60, 5, 0, 0, 0, Popescu castiga.

b) Rezultatul la lotul de juniori. Cel care a obtinut punctaj mai mare in urma probelor de la lotul de juniori este desemnat castigator. Necalificarea in lotul largit inseamna 0 puncte iar necalificarea in cel restrans inseamna pastrarea punctajului de la cel largit.

c) Infoarena se angajeaza sa organizeze o runda suplimentara de baraj, in urma careia speram sa ii putem, in sfarsit, departaja pe concurenti.

 Comentarii (0)

Categorii:

info(1) cup 2019

tamionv
Tamio Vesa Nakajima
22 februarie 2019

Concursul info(1) cup

Centrul Judeţean de Excelenţă Prahova lansează a treia ediţie a concursului online de programare infO(1) CUP!!
Proiectul este realizat în parteneriat cu Centrele Judeţene de Excelenţă din Olt, Neamţ, Sălaj, Satu Mare, Iasi, Braşov, Bistriţa Năsăud, Timişoara, Vaslui şi Colegiul Naţional “Ion Luca Caragiale” Ploieşti.

Ediţia din acest an este dedicată în memoria lui Mihai Pătraşcu, cercetător informatician român, decedat acum 7 ani la New York.

Concursul constă în două runde, la care vor participa 279 de elevi:

  • Runda Naţională se va desfăşura pe 23 februarie 2019 şi este adresată elevilor şcolarizaţi în Centrele Judeţene de Excelenţă din Romania;
  • Runda Internaţională se va desfăşura pe 24 februarie 2019 şi beneficiază de participarea a 37 echipe reprezentative din 28 de ţări.

După finalizarea concursului, va fi disponibilă şi varianta online mirror.

Comisia ştiinţifică şi comisia tehnică este formată din elevi olimpici medaliaţi la Olimpiada Naţională şi Internaţională de Informatică şi studenţi ai unor prestigioase universităţi din lume.

Informaţii suplimentare sunt disponibile pe site-ul competiţiei:

info1cup

Mulţumim sponsorilor noştri, tuturor celor care ne stau alături şi dorim succes participanţilor!"

 Comentarii ()

Categorii:
Vezi pagina: 1 23456... 3637383940 (400 rezultate)