Sunteți pe pagina 1din 2

InfO(1) Cup, Day 1

Ploies, ti, Romania


Friday 3rd February, 2023

Problema Sequences
Date de Intrare stdin
Date de Ies, ire stdout

Fie un s, ir de ı̂ntregi a1 , . . . , ak . Vom numi valoarea lui a1 , . . . , ak , pe care o vom nota value(a1 , . . . , ak ),
numărul maxim 2x = 2 | × .{z . . × 2} astfel ı̂ncăt 2x divide a1 + . . . + ak . Spre exemplu, dacă k = 3 s, i
x ori
a1 = 8, a2 = 3, a3 = 1 atunci a1 + a2 + a3 = 12 iar valoarea secvent, ei este 4.
Vei primi o secvent, ă de n numere naturale a1 , . . . , an . Calculează restul impărt, irii sumei tuturor
subsecvent, elor continue ale s, irului a1 , . . . , an la 109 + 7, care este egal cu:
n X
X n
S(a1 , . . . , an ) = value(ai , . . . , aj ) (mod 109 + 7)
i=1 j=i

Cu alte cuvinte, S(a1 , . . . , an ) este restul impărt, irii sumei valorilor value(ai , . . . , aj ) pentru toate
1 ≤ i ≤ j ≤ n prin ı̂mpărt, irea la 109 + 7.

Date de intrare
Programul cites, te de pe prima linie numărul n. A doua linie va cont, ine ı̂ntregii a1 , . . . , an , separat, i prin
câte un spat, iu.

Date de ies, ire


Programul va afis, a o singură linie care cont, ine numărul S(a1 , . . . , an ).

Restrict, ii
• 1 ≤ n ≤ 200 000.
• 1 ≤ ai ≤ 1 000 000.
• a1 + . . . + an ≤ 1 000 000.

# Punctaj Restrict, ii
1 13 ai = 1, n ≤ 200
2 16 a1 + . . . + an ≤ 200
3 5 n ≤ 200
4 20 n ≤ 5 000
5 21 a1 + . . . + an ≤ 200 000
6 25 Fără restrict, ii suplimentare

Exemple
Date de Intrare Date de Ies, ire
3 8
1 2 3
5 25
2 4 1 2 4
20 728
1 2 3 1 2 3 4 5 6 2 3 3 1 2 3 7 5 1 2 3 2

1/2
InfO(1) Cup, Day 1
Ploies, ti, Romania
Friday 3rd February, 2023

Explicat, ii
Primul Exemplu Valorile tuturor subsecvent, elor continue sunt:

• value(1) = 1 • value(2) = 2
• value(1, 2) = 1 • value(2, 3) = 1
• value(1, 2, 3) = 2 • value(3) = 1

Astfel, S(1, 2, 3) este restul ı̂mpărt, irii sumei valorilor la 109 + 7, adică 8 pentru acest exemplu.

Al doilea exemplu Valorile tuturor subsecvent, elor continue sunt:

• value(2) = 2 • value(4, 1, 2, 4) = 1
• value(2, 4) = 2 • value(1) = 1
• value(2, 4, 1) = 1 • value(1, 2) = 1
• value(2, 4, 1, 2) = 1 • value(1, 2, 4) = 1
• value(2, 4, 1, 2, 4) = 1 • value(2) = 2
• value(4) = 4 • value(2, 4) = 2
• value(4, 1) = 1 • value(4) = 4
• value(4, 1, 2) = 1

Astfel, S(2, 4, 1, 2, 4) este restul ı̂mpărt, irii sumei valorilor la 109 + 7, adică 25 pentru acest exemplu.

2/2

S-ar putea să vă placă și