#include<iostream>
using namespace std;
  class Array{
 protected:
   int *a;
   unsigned int size,num;
 public:
   Array(unsigned int s)
{
size =s;
num=0;
a=new int [s];
}
   virtual ~Array () { delete[] a;}
   virtual void add (int e)
{
if (num <size){
a[num]=e;
num++;
}
   int get (unsigned int i) const
{
if ( i<size  )
return a[i];
return 0;
}
};
   class SortedArray:public Array{
 public:
    SortedArray::SortedArray (unsigned int s):Array(s){}
    virtual void add(int e)
{
 if (num>=size)
return;
int i=0,j;
while (i<num){
if ( e<a[i]  )
{
  for (j=num;j>i;j--)
  {
   a[j]=a[j-1];
  }
  a[j]=e;
  break;
}   
i++;
}
if (i=num)
a[i]=e;
num++;
}
}; void fun(Array &a )
{
int i;
for(i=10;i>0;i--){
a.add(i);
//cout<<a.get(10-i);
//cout<<endl;
}
for (i=0;i<10;i++){
cout<<a.get(i)<<",";
}
cout<<endl;
}
int main ()
{
//Array a(10);
//fun (a);
SortedArray sa(10);
fun (sa);
return 0;
}