Cerinţa
Se dă un vector format din n
elemente, numere naturale nenule, şi un număr natural S
. Determinaţi, dacă există o secvenţă de elemente din şir cu suma elementelor egală cu S
.
Date de intrare
Fişierul de intrare sumainsecv.in
conţine pe prima linie numerele n
şi S
; urmează cele n
elemente ale vectorului, dispuse pe mai multe linii şi separate prin spaţii.
Date de ieşire
Fişierul de ieşire sumainsecv.out
va conţine pe prima linie numerele p
şi u
, separate printr-un spaţiu, reprezentând indicele de început şi de sfârşit al secvenţei determinate.
Restricţii şi precizări
1 ≤ n ≤ 100
- elementele vectorului vor avea cel mult
4
cifre şi sunt numerotate de la1
lan
- dacă vectorul nu conţine nici o secvenţă cu suma elementelor
S
, se va afişa0 0
- dacă şirul conţine mai multe secvenţe cu suma elementelor egală cu
S
, se va determina cea mai din stânga
Exemplu
sumainsecv.in
8 32 12 10 15 7 17 13 19 14
sumainsecv.out
2 4
Explicație
Există două secvenţe cu suma elementelor egală cu 32
: 10 15 7
şi 13 19
. Dintre acestea, 10 15 7
este cea mai din stânga.
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 SumaInSecv:
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("sumainsecv.in");
ofstream fout("sumainsecv.out");
int n, S, a[105];
int main(){
fin >> n >> S;
int ii=0, jj=0;
for(int i=1;i<=n;++i)
fin >> a[i];
for(int i=1 ; i<=n && ii==0 ; ++i)
for(int j=i ; j<=n && ii==0 ; ++j)
{
int sum = 0;
for(int k=i;k<=j;++k)
sum += a[k];
if(sum == S)
ii = i, jj = j;
}
fout << ii << " " << jj;
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 #300 SumaInSecv
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #300 SumaInSecv 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!