ОС1/Септембар 1 2025

Извор: SI Wiki
Пређи на навигацију Пређи на претрагу
Овај рок није решен. Помозите SI Wiki тако што ћете га решити.

Odbrana projekta 2025. godine održana je 08.10.2025.

Potrebno je dinamički alocirati matricu mat celih brojeva (int), dimenzija M*N, gde se M i N učitavaju sa standardnog ulaza i imaju proizvoljan broj cifara. Matricu nakon alociranja popuniti pseudoslučajnim verdnostima. Za generisanje pseudoslučajnih vrednosti koristiti sledeći segment koda:

static unsigned long int next = 1;

int custom_rand(void) {
    next = next * 1103515245 + 12345;
    return (unsigned int) (next / 65536) % 34768;
}

void custom_srand(unsigned int seed) {
    next = seed;
}

Potrebno je napraviti histogram H[10] broja pojavljivanja vrednosti unutar matrice po modulu 10 (mat[i][j]%10) za sve elemente. Pravljenje histograma odratiti kreiranjem M uporednih niti gde svaka nit računa lokalni histogram za jednu vrstu, a nakon toga taj histogram spaja s deljenim histogramom u kojem će se nalazizi finalne vrednosti za celu matricu. Glavna nit treba da ipsiše konačni histogram kada sve niti završe obradu.

20 poena: Tokom izvršavanja niti, nakon svakih 10 obraženih elemenata pozvati dispatch

30 poena: Tokom izvršavanja niti, nakon svakih 10 obraženih elemenata uspavati nit na 5 perioda tajmera