deviffy / marbles

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Algorithm description

Problema:

Se dau bile de n culori. In total sunt n x n bile. Distributia bilelor pe culori este random. Sa se decida daca este posibil si in caz afirmativ sa se prezinte algoritmul general prin care bilele sunt repartizate in n grupe de cate n bile astfel incat in fiecare grupa sa fie bile de maxim 2 culori diferite (sunt permise si grupe cu o singura culoare) indiferent de distributia initiala.

Solutie:

Se sorteaza crescator distributia initiala de bile. Pentru fiecare grupa in parte, se parcurge distributia initiala si se ia cantitatea optima de bile floor(n/2) + 1 din primul tip de bile disponibil si restul de floor(n/2) din urmatoarea pozitie cu suficiente bile disponibile pentru a completa grupa curenta. Daca prima pozitie are mai putine bile decat cantitatea optima, atunci se iau toate bilele disponibile si se cauta urmatoarea pozitie care poate completa grupa.

Setup

Get required packages

$ composer install
$ npm install

Migrate and seed the database

*** Update .env file with database credentials

$ php artisan migrate
$ php artisan db:seed

Compile assets for production

$ npm run production

CLI Version

There is also a CLI version available:

$ php artisan marbles

About


Languages

Language:PHP 95.7%Language:Vue 3.6%Language:HTML 0.5%Language:ApacheConf 0.3%