text.skipToContent text.skipToNavigation

wenglor Student Software Challenge 2026

Descriere

Provocarea este de a dezvolta o aplicație capabilă să rezolve eficient un set de cuburi Rubik de tip 3x3x3. Participanții trebuie să creeze o aplicație care să poată produce o secvență corectă de mutări ce transformă un cub Rubik dintr-o configurație inițială într-o stare rezolvată.

Scopul aplicației este să rezolve cât mai multe cuburi într-un timp cât mai scurt și cu un număr cât mai mic de mutări.

Rezolvarea cubului Rubik

O bază de date este oferită în fișierul input.txt. Fiecare rând din fișier reprezintă un puzzle cub Rubik 3x3x3 reprezentat ca un șir de 54 de caractere, corespunzător celor 54 de stickere ale cubului.

Fiecare față este citită:

  • de la stânga la dreapta
  • de sus în jos

Culorile sunt reprezentate prin litere:

  • W – White
  • Y – Yellow
  • R – Red
  • O – Orange
  • B – Blue
  • G – Green

Exemplu input.txt:
YWWYYBOOGOGBYGYRRGROGYRRWGGROBOBOWGGORBYBRWYBWYRWWWOBB

Scopul tău este să scrii un console application care să poată rezolva aceste cuburi Rubik. Aplicația poate fi scrisă în orice limbaj de programare, atâta timp cât executabilul său poate fi rulat de  evaluator.exe, pe care îl vei avea la dispoziție. Soluția trebuie să scrie cuburile rezolvate într-un fișier de ieșire numit solutions.txt, folosind aceeași ordine ca în fișierul de intrare.

NOTĂ: Dacă folosești limbaje ezoterice, te rugăm să oferi și un docker container pentru compilare.


Nu trimite fișierul solutions.txt. Acesta trebuie să fie generat de executabilul tău compilat.

Formatul fișierului de ieșire
Fișierul solutions.txt trebuie să conțină:

  • câte o linie pentru fiecare cub din input
  • în aceeași ordine
  • fiecare linie conținând secvența de mutări separate prin spațiu

Exemplu solutions.txt: 
B2 D F D' U F F D' F D U' R U' R' F' U U F B U' B' U B U' B' B' U B F U U F' U' B' U B U L U' L' L' U L U F U' F' R U' R' U' F' U F U' B U' B' U' R' U R U' B' U B U L U' L' U B' U B U L U' L' F R U R' U' F' U U R U' L' U R' U' L U F U' B' U F' U' B U U R' D' R D R' D' R D U R' D' R D R' D' R D R' D' R D R' D' R D U

Notația mutărilor

  • U – rotește fața de sus(Up) 90° în sens orar
  • U' – rotește fața de sus(Up) 90° în sens anti-orar
  • U2 – rotește fața(Up) de sus 180°

Aceeași regulă se aplică pentru:

  • R(Right), L(Left), F(Front), B(Back), D(Down)

Utilizarea unei biblioteci care rezolvă complet cubul fără contribuție algoritmică semnificativă din partea participantului poate conduce la un punctaj redus în secțiunea de code review.

Idei utile:

  1. Ia în considerare utilizarea unei abordări paralele.
  2. Gândește-te la compromisuri între viteza de execuție și consumul de memorie.
  3. Acordă atenție configurațiilor și flag-urilor de compilator, dacă este cazul.
  4. Asigură-te că mutările generate sunt valide și aplicabile configurației inițiale.

Vizualizator pentru cub Rubik

Creează o aplicație grafică ușor de utilizat, care să permită utilizatorilor să interacționeze cu un cub Rubik – să încarce și să rezolve un exemplu de cub. Vor exista puncte suplimentare pentru toate funcționalitățile extra pe care le vei implementa.

Ai posibilitatea să creezi această aplicație în orice format preferi (de exemplu: aplicație web, aplicație desktop, aplicație mobilă etc.). Tehnologiile/limbajele de programare utilizate nu sunt restricționate în niciun fel. Cu toate acestea, se vor acorda mai multe puncte pentru aplicatiile web si/sau care permit afisarea cubului in format 3D. 

De asemenea, pe lângă aplicație, va trebui să încărcați și un demo (fie video, fie o instanță live a aplicației) și, opțional, un set de slide-uri care evidențiază principalele caracteristici și modul în care funcționează aplicația. Dacă te vei califica pentru un premiu, va trebui să vii la sediul Wenglor pentru o demonstrație și o prezentare a funcționalităților aplicației și a codului

Punctaj

Task-ul 1: 100p 

Pentru primul task, scorul va fi realizat cu ajutorul evaluatorului nostru inclus în acest pachet. Fiecare intrare validă va fi punctată pe o scală de 100p după cum urmează:

  • 15p consum de memorie:
    scorul tău =
    CMM/CMT*15p
        CMM – Consumul Mediu Minim de memorie
        CMT – Consumul Mediu de Memorie al aplicației tale

     
  • 15p viteză de execuție, timpul total petrecut în rularea executabilului:
    scorul tău = TMME/TMET*15p
        TMME – Timpul Mediu Minim de Execuție
        TMET – Timpul Mediu de Execuție al aplicației Tale

     
  • 20p corectitudinea calculată pe baza la validator.exe:
    scorul tău = NRT/NRM*20p
        NRM – Număr Rezolvări Maxim (cel mai mare număr de cuburi rezolvate de un concurent)
        NRT – Număr Rezolvări de cuburi rubik al Tău

     
  • 20p media numarului de miscari pentru a rezolva cuburile calculată pe baza la validator.exe:
    scorul tău = (NRT/NRM)*20p * (MMM/MMT) 
        NRM – Număr Rezolvări Maxim
        NRT – Număr Rezolvări de cuburi rubik al Tău
        MMM – Media Minimă de Mișcări
        MMT – Media Ta de Mișcări
     
  • 30p design-ul aplicației & lizibilitatea codului:
    scorul tău = evaluare a codului realizată de organizatorul concursului
 

Task-ul 2 + funcționalități extra: 100p + 20p 

Pentru al doilea task, juriul concursului (format din angajați ai organizatorului) va realiza scorul. Fiecare intrare validă va fi punctată pe o scală de 100p având în vedere criterii precum ușurința în utilizare, claritatea si structura codului.
De asemenea, suplimentar, juriul va lua în considerare acordarea a până la 20p pe baza complexității implementării funcționalităților extra.

Punctajul de la fiecare task va fi însumat pentru a crea scorul final.
Pentru a obține un premiu, este necesar un minim de 100p. Doar primele trei proiecte care înregistrează cel mai mare scor vor fi recompensate financiar, așa cum este specificat în flyer.

Mediu de testare

  1. Windows 10 sau Windows 11 pe procesor Intel Core i7-11850H
  2. Pentru calcularea consumului de memorie și a vitezei de execuție, va fi folosit programul evaluator.exe furnizat în pachet.
  3. Pentru calcularea rezultatului de ieșire, va fi folosit validator.exe furnizat în pachet.

Utilizarea evaluator.exe: copiază fișierul tău executabil în folderul pachetului și rulează evaluator.exe cu executabilul tău ca parametru de start. După ce evaluarea este completă, va genera un raport cu rezultatele evaluării. Alternativ, poți da dublu click pe evaluator.exe după ce ai copiat executabilul în același director.

Utilizarea validator.exe: după ce ai generat fișierul solutions.txt, poți rula instrumentul de verificare validator.exe și vei putea vedea cât de bine te-ai descurcat. Fișierul solutions.txt trebuie să fie în același director când rulezi validator.exe.
 

Programul concursului

20 Martie – 19 Aprilie 2026
Pentru inscriere trimite-ne detaliile tale de contact pe Discord:
https://discord.com/invite/areKv5hrBN

După ce ne trimiti aceste informatii, vei primi un link către o pagină unde vei putea încărca codul sursa si celelalte documente necesare.

20 Aprilie – 7 Mai 2026
Vom evalua soluțiile concurentiilor. In aceasta perioada s-ar putea sa fi contact pentru a sustine o prezentare a soluțiilor tale la sediul companiei.

8 – 10 Mai 2026

Acordarea premiilor concursului la sediul wenglor.

  • Primul loc: 1.500 €
  • Al doilea loc: 1.000 €
  • Al treilea loc: 500 €

Condiții de participare

  • ​​​​​​​Trebuie să fii student la licență sau masterat în Sibiu pentru a participa 
  • Nu trebuie să fii angajat actual sau fost angajat al wenglor 


Dacă ai nevoie de detalii suplimentare, te rugăm să ne contactezi pe aplicația Discord , sau in caz ca nu o poti accesa, la adresa de e-mail​​​​​​​ paul.barbu@wenglor.com

Rularea binarelor pe Linux

Concursul prevede evaluarea executabilelor finale pe o masina care ruleaza Windows, dar datorita cererii mari va punem la dispozitie si binare (pentru evaluator si validator) de Linux x86_64.
Le puteti folosi ca sa va faceti o idee de performanetele aplicatiilor voastre pe Linux. Daca alegeti sa dezvoltati pe Linux, pentru a putea pastra un mediu de evaluare echitabil si consistent pentru toata lumea, o sa va rugam ca la final sa ne oferiti binare de Windows.

Download

Fișiere wenglor Student Software Challenge
Fișiere wenglor Student Software Challenge (3 MB)
Acest fișier conține informațiile de care aveți nevoie pentru a finaliza sarcina.
Rularea binarelor pe Linux
Rularea binarelor pe Linux (37 MB)
Product Comparison