Pagini recente » Diferente pentru problema/dungeon intre reviziile 9 si 19 | Diferente pentru problema/dicearray intre reviziile 24 si 5 | Monitorul de evaluare | Diferente pentru problema/eval intre reviziile 3 si 27 | Diferente pentru problema/thread intre reviziile 12 si 4
Diferente intre titluri:
Diferente intre continut:
== include(page="template/taskheader" task_id="thread") ==
Gigel are N thread-uri, numerotate de la $1$ la $N$. Thread-ul $i$ ({$1 ≤ i ≤ N$}) execută operaţia $x += c{~i~}$.
Gigel are N thread-uri, numerotate de la $1$ la $N$. Thread-ul $i$ ($ 1$ ≤ $i$ ≤ $N$) execută operaţia $x += c ~i~$.
Execuţia operaţiei $x += c{~i~}$ este alcătuită din următoarele operaţii atomice:
Execuţia operaţiei $x += c ~i~$ este alcătuită din următoarele operaţii atomice:
- se citeşte valoarea lui $x$ din memorie,
- se adaugă la aceasta $c{~i~}$,
- se adaugă la aceasta $c ~i~$,
- se scrie rezultatul în memorie.
Iniţial valoarea lui $x$ este $0$. Cele $N$ thread-uri se execută în paralel. Când thread-urile se execută in paralel, operaţiile atomice ale acestora sunt intercalate într-un mod la alegerea sistemului. Se cere să se găseasca câte valori posibile poate lua variabila $x$ la sfârşitul execuţiei tuturor thread-urilor.
Prima linie din fiecare test conţine numărul $N$ de thread-uri.
A doua linie din fiecare test conţine numerele $c{~1~}$, ..., $c{~N~}$.
A doua linie din fiecare test conţine numerele $c ~1~$, ..., $c ~N~$.
h2. Date de ieşire
h2. Restricţii
* $1$ ≤ $T$ ≤ $128$
* $1$ ≤ $Z$ ≤ $50$
* $1$ ≤ $N$ ≤ $256$
* $0$ ≤ $c_i$ ≤ $256$
table(example). |_. thread.in |_. thread.out |
| 1
2
1
1 2
| 3
|
Nu exista diferente intre securitate.
Diferente intre topic forum: