#include <iostream>
#include <numeric>
#include <vector>
using namespace std;
int main() {
vector<int> in{1, 2, 3, 4, 5};
vector<int> out(in.size());
inclusive_scan(begin(in), end(in), begin(out));
for (const auto &iter : out) {
cout << iter << " ";
}
cout << endl;
cout << "------ 1" << endl;
inclusive_scan(begin(in), end(in), begin(out), minus<>{});
for (const auto &iter : out) {
cout << iter << " ";
}
cout << endl;
cout << "------ 2" << endl;
inclusive_scan(begin(in), end(in), begin(out), plus<>{}, 10);
for (const auto &iter : out) {
cout << iter << " ";
}
cout << endl;
cout << "------ 3" << endl;
exclusive_scan(begin(in), end(in), begin(out), 0);
for (const auto &iter : out) {
cout << iter << " ";
}
cout << endl;
cout << "------ 4" << endl;
exclusive_scan(begin(in), end(in), begin(out), 0, minus<>{});
for (const auto &iter : out) {
cout << iter << " ";
}
cout << endl;
cout << "------ 5" << endl;
exclusive_scan(begin(in), end(in), begin(out), 10, plus<>{});
for (const auto &iter : out) {
cout << iter << " ";
}
cout << endl;
return 0;
}