Pagini recente » Cod sursa (job #247547) | Cod sursa (job #621517) | Cod sursa (job #2921934) | Cod sursa (job #1426963) | Cod sursa (job #570985)
Cod sursa(job #570985)
#include <iostream>
#include <fstream>
using namespace std;
class legnagyobb{
int* elem;
int n;
public:
legnagyobb();
void beir();
legnagyobb vissza();
legnagyobb(int *tomb,int m);
~legnagyobb();
};
legnagyobb::legnagyobb(){
ifstream be ("scmax.in" , ifstream::in );
be>>n;
elem=new int[n];
for (int i=0;i<n;i++){
be>>elem[i];}
be.close();
}
legnagyobb::legnagyobb(int *tomb,int m){
elem=new int[m];
n=m;
for (int i=0;i<n;i++)
elem[i]=tomb[i];
}
void legnagyobb::beir(){
ofstream ki("scmax.out");
ki<<n<<"\n";
int j;
for (j=0;j<n;j++)
ki<<elem[j]<<" ";
ki.close();
}
legnagyobb legnagyobb::vissza(){
int elozo=elem[0];
int eleje=0;
int vege=0;
int elso=0;
int utolso=0;
int max=0;
int akt=0;
int i;
for (i=1;i<n;i++){
if (elem[i]>=elozo){
elozo=elem[i];
utolso=i;
akt++;
vege=i;
}
else if (akt>=max){
max=akt;
eleje=elso;
vege=utolso;
elso=i;
utolso=i;
akt=0;
elozo=elem[i];
}
else {
akt=0;
elozo=elem[i];
elso=i;
utolso=i;
}
}
if (akt>=max){
max=akt;
eleje=elso;
vege=utolso;
elso=i;
utolso=i;
akt=0;
elozo=elem[i];
}
int* seged;
max++;
int j;
seged=new int[max];
int* seged2;
seged2=new int[max];
int l=0;
for (int i=0;i<max;i++)
seged[i]=elem[i+eleje];
for (j=0;j<max;j++){
if (seged[j]!=seged[j+1]){
seged2[l]=seged[j];
l++;}}
seged2[l]=seged[j+1];
legnagyobb vissza(seged2,l);
//delete [] seged;
//delete [] seged2;
return vissza;
}
legnagyobb::~legnagyobb(){
//delete elem;
}
int main(){
legnagyobb v;
v.vissza().beir();
return 0;
}