Pagini recente » Cod sursa (job #551996) | Cod sursa (job #2659351) | Cod sursa (job #2929255) | Cod sursa (job #1417138) | Cod sursa (job #2228013)
#include <fstream>
#include <vector>
#include <limits>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
vector<int> maxIncreasingSubArray(const vector<int> input)
{
size_t maxNrOfElements = 0;
int last = numeric_limits<int>::min();
vector<int> outputCandidate;
vector<int> output;
outputCandidate.push_back(last);
//maybe this can be improved by not copying each time outputCandidate to output
for(size_t i = 0 ; i< input.size(); ++i)
{
if(last > input[i])
{
outputCandidate.clear();
}
if (last != input[i])
{
outputCandidate.push_back(input[i]);
}
if (maxNrOfElements < outputCandidate.size() )
{
maxNrOfElements = outputCandidate.size();
output = outputCandidate;
}
last = input[i];
}
return output;
}
vector<int> input;
vector<int> output;
vector<int>::iterator it;
int x, n;
int main()
{
f>>n;
int x;
for(int i=0; i<n; i++)
{
f>>x;
input.push_back(x);
}
output = maxIncreasingSubArray(input);
g<<output.size() << '\n';
for(it = output.begin(); it!= output.end(); ++it)
{
g<<*it << ' ';
}
return 0;
}