Informatică, întrebare adresată de ionutcarlos15, 8 ani în urmă

Programatorii de pe Wall Street se confruntă cu o problemă căreia nu îi pot face față de unii singuri. Numărul investitorilor a crescut brusc în ultima perioadă, iar acțiunile acestora nu sunt în siguranță fără ca programatorii să aibă situația sub control.
Cerință
Dându-se numărul de acțiuni, cel al investitorilor și câți bani investește/retrage un investitor și știindu-se ca inițial acțiunile sunt nule, afișați cât vor valora acțiunile dupa investițiile sau retragerea de bani a investitorilor.
Date de intrare
Fisierul de intrare investitie.in conține pe prima linie două numere naturale n și I, iar pe următoarele I linii câte 3 elemente, st, dr și S, reprezentând că toate acțiunile cu indicii cuprinși între st și dr își măresc valoarea cu S.
Date de ieșire
Fișierul de ieșire investitie.out va conține n numere întregi, reprezentând valorile acțiunilor finale.
Restricții si precizări
• 1 ≤ n, I ≤ 200.000;
• 1 ≤ st ≤ dr ≤ n;
• -1000 ≤ S ≤ 1000
Exemplu
investitie.in investitie.out
12 7
4 7 -1
6 11 8
3 5 2
1 4 -4
9 11 5 -4 -4 -2 -3 1 10 10 10 15 15 15 10

Răspunsuri la întrebare

Răspuns de me2018
0

#include<fstream>

using namespace std;

ifstream in(investitie.in);

ofstream out(investitie.out);

int v[200001];

int main()

{  int n, L,st,dr,s,i,j;

in>>n>>L;

for( i=1;i<=L;i++)

   {in>>st>>dr>>s;

    for(j=st;j<=dr;j++)

       v[j[=v[j]+s;

   }

for(int i=1i<=n;i++)

    out<<v[i]<<" ";

in.close();

out.close();

}

Alte întrebări interesante