Se da un vector ordonat crescator cu n elemente, apoi se citeste un numar S.
Sa se verifice daca 2 numere din vectorul respectiv au suma egala cu S.
Daca oricare 2 numere din vector au suma egala cu S, se va afisa rezultatul "Da" altfel se va afisa "Nu".
Incercati sa evitati sa folositi 2 foruri pentru a lua pe rand elementele.
Cel mai bun rezultat va fi premiat :))
Răspunsuri la întrebare
Răspuns de
0
#include <iostream>
using namespace std;
int v[10000];
int main(){
int i,j,n,s;
cin >>n;
for(i=0;i<n;i++){
cin>>v[i];
}
cin>>s;
i=0;
j=n-1;
while(i<j){
if(v[i]+v[j]>s)j--;
else if(v[i]+v[j]<s)i++;
else break;
}
cout<<(i==j?"NU":"DA");
}
CinevaFaraNume:
Tehnica pe care am folosit-o se numeste "Two Pointers"
Alte întrebări interesante
Matematică,
8 ani în urmă
Germana,
8 ani în urmă
Geografie,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Franceza,
9 ani în urmă