Grade 9 · One-dimensional arrays (vectors)Citește în română
Sum of the elements on even and odd positions
Original: Suma elementelor de pe pozițiile pare și impare
O(n)C++1744 lines1 example
The idea
Mind the difference between the position (the index i) and the value (v[i]). Parity is checked here for the index: v[2], v[4], ... are on even positions. The sum on even positions is printed, then the sum on odd ones.
Original description (Romanian)
Atenție la diferența dintre poziție (indicele i) și valoare (v[i]). Paritatea se verifică aici pentru indice: v[2], v[4], ... sunt pe poziții pare. Se afișează suma pe poziții pare, apoi pe impare.
- Complexity
- O(n)
- Grade
- Grade 9 (Clasa a IX-a)
Examples
Example 1
Input
6 5 1 8 2 7 3
Expected output
6 20
The code
Comments are in Romanian, as in the original collection. Edit freely: you can reset at any time.
/*
* Titlu: Suma elementelor de pe pozițiile pare și impare
* Clasa: 9
* Capitol: Tablouri unidimensionale (vectori)
* Descriere: Atenție la diferența dintre poziție (indicele i) și valoare (v[i]).
* Paritatea se verifică aici pentru indice: v[2], v[4], ... sunt pe
* poziții pare. Se afișează suma pe poziții pare, apoi pe impare.
* Complexitate: O(n)
*
* Exemplu
* Intrare:
* 6
* 5 1 8 2 7 3
* Ieșire: 6 20
*/
#include <iostream>
using namespace std;
int v[1001];
int main()
{
int n;
long long sumaPare = 0, sumaImpare = 0;
cin >> n;
for (int i = 1; i <= n; i++)
{
cin >> v[i];
}
for (int i = 1; i <= n; i++)
{
if (i % 2 == 0)
{
sumaPare = sumaPare + v[i];
}
else
{
sumaImpare = sumaImpare + v[i];
}
}
cout << sumaPare << ' ' << sumaImpare << '\n';
return 0;
}
Runs on a real g++ (C++17, -O2) through Compiler Explorer. Keep runs short; there's a time limit.