Pagini recente » Cod sursa (job #1150259) | Cod sursa (job #1669002) | Cod sursa (job #3226262) | Cod sursa (job #1466115) | Cod sursa (job #571051)
Cod sursa(job #571051)
#include <iostream>
#include <fstream>
using namespace std;
class legnagyobb{
int elem[10000];
int n;
public:
legnagyobb();
void beir();
legnagyobb vissza();
legnagyobb(int *tomb,int m);
};
legnagyobb::legnagyobb(){
ifstream be ("scmax.in" , ifstream::in );
be>>n;
int p;
for (int i=1;i<=n;i++){
be>>p;
elem[i]=p;}
be.close();
}
legnagyobb::legnagyobb(int *tomb,int m){
n=m;
for (int i=1;i<=n;i++)
elem[i]=tomb[i];
}
void legnagyobb::beir(){
ofstream ki("scmax.out");
ki<<n<<"\n";
int j;
for (j=1;j<=n;j++)
ki<<elem[j]<<" ";
ki.close();
}
legnagyobb legnagyobb::vissza(){
int vissza2[10000];
int l[10000];
int hely[10000];
int i,j;
l[n]=1;
hely[n]=-1;
int max=1,maxmax;
for(i=n-1;i>=1;i--)
{
l[i]=1;
hely[i]=-1;
for(j=i+1;j<=n;j++)
if((elem[i]<elem[j])&&(l[i]<l[j]+1))
{
l[i]=l[j]+1;
hely[i]=j;
if(l[i]>max)
{
max=l[i];//maximum elem szam
maxmax=i;
}
}
}
int cc=1;
for(i=maxmax;i!=-1;i=hely[i]){
vissza2[cc]=elem[i];
cc++;
}
legnagyobb vissza(vissza2,max);
return vissza;
}
int main(){
legnagyobb v;
v.vissza().beir();
return 0;
}