![]() |
Az S. 146. feladat (2020. október) |
S. 146. Adott egy N elemű T tömb 1-től indexelve, amely nemnegatív egész számokat tartalmaz. Kétféle műveletet végzünk a T tömb elemeivel. Az egyik műveletben hozzáadunk a tömb néhány egymást követő eleméhez egy p értéket, vagyis adott a és b mellett minden i∈[a,b] indexű T[i] elem ezután T[i]+p lesz. Definiáljuk adott c és d esetén (ahol d−c+1 páros) a következő szorzatösszeget: T[c]⋅T[c+1]+T[c+2]⋅T[c+3]+…+T[d−1]⋅T[d], amely a [c,d] intervallum értéke a T tömbön. A második műveletben adjuk meg a c és d számok által meghatározott intervallum értékét. Mivel egy intervallum értéke nagyon nagy is lehet, ezért a lekérdezés eredményének 109+7-tel vett osztási maradékát kell megadni.
Bemenet: az első sor tartalmazza az N és Q számokat. A következő sor N számot tartalmaz, T elemeit. A következő Q sor mindegyike vagy 1 a b p alakú, ami azt jelenti, hogy az [a;b] intervallumon minden tömbértéket megváltoztatunk p-vel; vagy 2 c d alakú, ami azt jelenti, hogy lekérdezzük a [c,d] intervallum értékét.
Kimenet: minden 2-es típusú kérdésre adjuk meg az intervallum értékét modulo 109+7.
Példa:
Korlátok: 1≤N,Q≤105, 0≤T[i],p≤109, 1≤a,b,c,d≤N, a≤b, c<d. Időkorlát: 0,3 mp.
Értékelés: a pontok 50%-a kapható, ha N≤100.
Beküldendő egy s146.zip tömörített állományban a megfelelően dokumentált és kommentezett forrásprogram, amely tartalmazza a megoldás lépéseit, valamint megadja, hogy a program melyik fejlesztői környezetben futtatható.
(10 pont)
A beküldési határidő 2020. november 16-án LEJÁRT.
Észrevehető, hogy két féle lekérdezés lehet az intervallum kezdőpontjának paritása alapján.
Mindkét eset külön kezelhető egy-egy szegmensfával.
Részletes leírás Horcsin Bálint megoldásában:
Statisztika:
12 dolgozat érkezett. 10 pontot kapott: Horcsin Bálint, Varga 256 Péter. 6 pontot kapott: 1 versenyző. 2 pontot kapott: 7 versenyző. 1 pontot kapott: 2 versenyző.
A KöMaL 2020. októberi informatika feladatai
|