Dragi takmičari,
Na današnjem času priprema za okružno rešavali smo prvi zadatak sa prošlogodišnjeg okružnog takmičenja 1. Krompir:
Naše današnje rešenje zadatka je u prilogu i trebalo bi da prođe skoro sve test primere.
Obratite pažnju na sledeće:
- Deklaracija promenljive za matricu A (počeli smo 10x10, a tek na kraju postavili na 100000000 x 100000000).
- Deklaracija promenljivih za nizove početnih stanja krompira x i y (počeli smo 100, a tek na kraju postavili 100000000).
- Tipove podataka svih promenljivih, kako običnih tako i elemenata nizova i matrice (sve vreme radili i testirali sa Integer, a tek pred kraj prepravili na LongInt).
- Učitavanje početnih koordinata krompira (x[k] i y[k]) i brojač početnih pozicija krompira k koji ide od 1 do M.
- Inicijalno postavljanje vrednosti svih elemenata matrice na 0.
- Inicijalno postavljanje vrednosti svih početnih pozicija krompira na 1: A [ x [k], y [k] ] := 1;.
- Štampanje svih elemenata matrice zbog testiranja i provere, a tek na kraju smo isključili ove naredbe.
- Ključni deo programa (u sredini) - spoljna petlja po k (po početnim pozicijama krompira), u kojoj su 2 petlje, jedna koja postavlja sve elemente matrice u istom redu na 1, i druga koja postavlja sve elemente matrice u istoj koloni na 1 i njihove naredbe:
A [ x [ k ], j ] := 1 i
A [ i, y [ k ] ] := 1 - Sabiranje svih vrednosti elemenata matrice.
Naravno, zadatak je mogao da se reši i drugačije. Ovo rešenje nije potpuno optimizovano, naročito ne vremenski, ali daje tačne rezultate i pokriva sva navedena ograničenja opsega vrednosti.
Pozdrav,
Dragan Ilić
Dragan Ilić
Нема коментара:
Постави коментар