Informatika gyűjtemény

NézetNyomtat

Algoritmus

Először is sorrendbe tesszük a ponthatárokat, növekvő sorrendben. Az első kivételével (hiszen legalább 1 ember legyen aki egyest kap) lekérjük az összestől 1-el kisebb számot. Ezek lehetnek felső ponthatárok, hiszen ha pont (nem pont, de nem lehet ugyanaz, hiszen legalább 1 pont távolság kell) valaki megkapta a jobb jegyet, az a legjobb, hiszen akkor így a lehető legtávolabb leszünk az ennél kisebb pontú embertől, aki pont nem kapta meg. Ezek közül azokat nem vesszük figyelembe amelyik pont olyan ponthatár, hogy lesz aki éppen nem kapta meg a jobb jegyet.
Utána őket azaz a potenciális ponthatárokat csökkenő sorrendbe tesszük aszerint, hogy milyen messze van a nála kisebb pontszámtól. Hiszen azokat választjuk be, amely ponthatároktól a lehető legmesszebb vannak a pont lecsúszott tanulók. Ezek közül kiválasztjuk az első 4-et (az 5. ponthatár a maximális pontszám).
Ha végül mégse maradt 4 darab pontszám, akkor 0-át írunk ki, ha igen akkor kiírjuk őket + az $M$-et.

Kódok

Kriván Bálint (C#): kb_jegyek.cs