Pagini recente » Cod sursa (job #1507702) | Cod sursa (job #1892428) | Cod sursa (job #2280813) | Cod sursa (job #1175621) | Cod sursa (job #1126301)
#include <iostream>
#include <fstream>
#include <vector>
std::ostream& operator<<(std::ostream& ostream, std::vector<int> v) {
unsigned int size = v.size();
for (unsigned int i = 0; i < size; i++)
ostream << v[i] << " ";
ostream << std::endl;
return ostream;
}
std::istream& operator>>(std::istream& istream, std::vector<int>& v) {
unsigned int n;
istream >> n;
int x;
for (unsigned int i = 0; i < n; i++) {
istream >> x;
v.push_back(x);
}
return istream;
}
int main() {
std::ifstream f("t.in");
std::ofstream g("ssm.out");
std::vector<int> v;
f >> v;
f.close();
int s = 0;
int start, end, maxSubSum;
int size = v.size();
start = 0;
maxSubSum = v[0];
s = v[0];
for (int i = 0; i < size; i++) {
if (s < 0) {
s = v[i];
start = i;
} else {
s += v[i];
}
if (s > maxSubSum) {
maxSubSum = s;
end = i;
}
}
g << maxSubSum << " " << start + 1 << " " << end + 1;
g.close();
return 0;
}