Pagini recente » Cod sursa (job #2385905) | Cod sursa (job #1017723) | Cod sursa (job #2612615) | Cod sursa (job #565369) | Cod sursa (job #2219505)
#include <iostream>
#include <fstream>
#include <array>
#include <cstddef>
constexpr int NMAX = 100000;
std::array<int, NMAX> v;
std::size_t arraySize{0};
std::ofstream g{"aib.out"};
enum QueryType : int
{
ADD = 0,
SUM = 1,
POSITION = 2
};
void Read()
{
std::ifstream f{"aib.in"};
std::ios_base::sync_with_stdio(false);
std::size_t numOfQuerries{0};
int operation{ -1 }, i;
f >> arraySize >> numOfQuerries;
for(i = 0; i < arraySize; ++i) {
f >> v[i];
if(i != 0) {
v[i] += v[i - 1];
}
}
for(i = 0; i < numOfQuerries; ++i) {
f >> operation;
switch(operation)
{
case ADD:
{
int a, b;
f >> a >> b;
for(int j = a - 1; j < arraySize; ++j) {
v[j] += b;
}
break;
}
case SUM:
{
int a, b;
f >> a >> b;
g << ((a == 1) ? v[b - 1] : (v[b - 1] - v[a - 2])) << '\n';
break;
}
case POSITION:
{
int a, j;
f >> a;
for(j = 0; v[j] != a && j < arraySize; ++j) {}
g << ((j == arraySize) ? -1 : (j + 1)) << '\n';
break;
}
}
}
}
//void Solve()
//{
//}
int main()
{
Read();
// Solve();
}