Cerința
Se consideră un vector cu n
elemente numere naturale. Calculați suma sumelor tuturor subsecvențelor ce se pot forma cu elementele vectorului. Pentru că suma poate fi foarte mare, afișați suma modulo 1.000.000.007
.
Date de intrare
Fișierul de intrare easy_sum.in
conține pe prima linie numărul n
, iar pe a doua linie n
numere naturale separate prin spații.
Date de ieșire
Fișierul de ieșire easy_sum.out
va conține pe prima linie numărul S
, reprezentând suma sumelor tuturor subsecvențelor modulo 1.000.000.007
.
Restricții și precizări
1 ≤ n ≤ 100.000
- numerele de pe a doua linie a fișierului de intrare vor fi cuprinse în intervalul
[1,1.000.000]
- prin subsecvență înțelegem orice înșiruire de elemente din vector aflate pe poziții consecutive.
Exemplu
easy_sum.in
3 1 2 3
easy_sum.out
20
Explicație
Subsecvențele formate: {1}
, {2}
, {3}
, {1,2}
, {2,3}
, {1,2,3}
.
Suma sumelor tuturor subsecvențelor este 20
.
Cum e corect?
cout < "As la info";
cout << "As la info";
cout >> "As la info";
Felicitări! Poți mai mult?
Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.
Greșit, dar nu-i bai!
Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.
Rezolvare
Iată rezolvarea de 100 de puncte pentru problema easy_sum:
# include <bits/stdc++.h>
# define MOD 1000000007
# define NM 100003
using namespace std;
ifstream f("easy_sum.in");
ofstream g("easy_sum.out");
int x[NM], n;
long long S;
int main()
{
f >> n;
for(int i=0; i<n; ++i)
f >> x[i];
for(int i=0; i<n; ++i)
S = (S + 1LL * x[i] * (i+1) * (n-i)) % MOD;
g << S << '\n';
return 0;
}
Atenție
Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa .
Rezolvarea problemei #2142 easy_sum
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #2142 easy_sum de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.
Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!