#include <iostream> 
 
using  namespace  std; 
 
const  int  MAX_SIZE =  10 ; 
 
class  Array { 
private : 
    int  elements[ MAX_SIZE] ; 
    int  size; 
 
public : 
 
    Array( )  :  size( 0 )  { } 
    void  addElement( int  value)  { 
        if  ( size <  MAX_SIZE)  { 
            elements[ size++ ]  =  value; 
            cout  <<  "Element added successfully."  <<  endl; 
        }  else  { 
            cout  <<  "Array is full. Cannot add more elements."  <<  endl; 
        } 
    } 
 
    void  display( )  { 
        if  ( size ==  0 )  { 
            cout  <<  "Array is empty."  <<  endl; 
        }  else  { 
            cout  <<  "Array elements:"  <<  endl; 
            for  ( int  i =  0 ;  i <  size;  ++ i)  { 
                cout  <<  elements[ i]  <<  " " ; 
            } 
            cout  <<  endl; 
        } 
    } 
 
    int  findMax( )  { 
        if  ( size ==  0 )  { 
            cout  <<  "Array is empty. No maximum element."  <<  endl; 
            return  - 1 ; 
        } 
 
        int  maxElement =  elements[ 0 ] ; 
        for  ( int  i =  1 ;  i <  size;  ++ i)  { 
            if  ( elements[ i]  >  maxElement)  { 
                maxElement =  elements[ i] ; 
            } 
        } 
        return  maxElement; 
    } 
} ; 
 
int  main( )  { 
    Array arr; 
    arr.addElement ( 10 ) ; 
    arr.addElement ( 5 ) ; 
    arr.addElement ( 20 ) ; 
    arr.addElement ( 8 ) ; 
 
    arr.display ( ) ; 
    int  maxElement =  arr.findMax ( ) ; 
    if  ( maxElement ! =  - 1 )  { 
        cout  <<  "Maximum element in the array: "  <<  maxElement <<  endl; 
    } 
 
    return  0 ; 
} 
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNvbnN0IGludCBNQVhfU0laRSA9IDEwOwoKY2xhc3MgQXJyYXkgewpwcml2YXRlOgogICAgaW50IGVsZW1lbnRzW01BWF9TSVpFXTsKICAgIGludCBzaXplOwoKcHVibGljOgoKICAgIEFycmF5KCkgOiBzaXplKDApIHt9CiAgICB2b2lkIGFkZEVsZW1lbnQoaW50IHZhbHVlKSB7CiAgICAgICAgaWYgKHNpemUgPCBNQVhfU0laRSkgewogICAgICAgICAgICBlbGVtZW50c1tzaXplKytdID0gdmFsdWU7CiAgICAgICAgICAgIGNvdXQgPDwgIkVsZW1lbnQgYWRkZWQgc3VjY2Vzc2Z1bGx5LiIgPDwgZW5kbDsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBjb3V0IDw8ICJBcnJheSBpcyBmdWxsLiBDYW5ub3QgYWRkIG1vcmUgZWxlbWVudHMuIiA8PCBlbmRsOwogICAgICAgIH0KICAgIH0KCiAgICB2b2lkIGRpc3BsYXkoKSB7CiAgICAgICAgaWYgKHNpemUgPT0gMCkgewogICAgICAgICAgICBjb3V0IDw8ICJBcnJheSBpcyBlbXB0eS4iIDw8IGVuZGw7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgY291dCA8PCAiQXJyYXkgZWxlbWVudHM6IiA8PCBlbmRsOwogICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemU7ICsraSkgewogICAgICAgICAgICAgICAgY291dCA8PCBlbGVtZW50c1tpXSA8PCAiICI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY291dCA8PCBlbmRsOwogICAgICAgIH0KICAgIH0KCiAgICBpbnQgZmluZE1heCgpIHsKICAgICAgICBpZiAoc2l6ZSA9PSAwKSB7CiAgICAgICAgICAgIGNvdXQgPDwgIkFycmF5IGlzIGVtcHR5LiBObyBtYXhpbXVtIGVsZW1lbnQuIiA8PCBlbmRsOwogICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgfQoKICAgICAgICBpbnQgbWF4RWxlbWVudCA9IGVsZW1lbnRzWzBdOwogICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDwgc2l6ZTsgKytpKSB7CiAgICAgICAgICAgIGlmIChlbGVtZW50c1tpXSA+IG1heEVsZW1lbnQpIHsKICAgICAgICAgICAgICAgIG1heEVsZW1lbnQgPSBlbGVtZW50c1tpXTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gbWF4RWxlbWVudDsKICAgIH0KfTsKCmludCBtYWluKCkgewogICAgQXJyYXkgYXJyOwogICAgYXJyLmFkZEVsZW1lbnQoMTApOwogICAgYXJyLmFkZEVsZW1lbnQoNSk7CiAgICBhcnIuYWRkRWxlbWVudCgyMCk7CiAgICBhcnIuYWRkRWxlbWVudCg4KTsKCiAgICBhcnIuZGlzcGxheSgpOwogICAgaW50IG1heEVsZW1lbnQgPSBhcnIuZmluZE1heCgpOwogICAgaWYgKG1heEVsZW1lbnQgIT0gLTEpIHsKICAgICAgICBjb3V0IDw8ICJNYXhpbXVtIGVsZW1lbnQgaW4gdGhlIGFycmF5OiAiIDw8IG1heEVsZW1lbnQgPDwgZW5kbDsKICAgIH0KCiAgICByZXR1cm4gMDsKfQ==