Pagini recente » Cod sursa (job #276059) | Cod sursa (job #164719) | Cod sursa (job #3269325) | Cod sursa (job #274537) | Cod sursa (job #1684896)
#include <stdio.h>
#define InFile "elmaj.in"
#define OutFile "elmaj.out"
struct nod
{
int x,aparitii;
struct nod *urm;
};
typedef struct nod nod;
int elmaj = -1,k=0;
void Inserare( nod **prim , int numar )
{
if( !*prim )
{
nod * nou = (nod*)malloc(sizeof(nod));
nou->aparitii = 0;
nou->x = numar;
nou->urm = NULL;
*prim = nou;
}
else if( (*prim)->x > numar )
{
nod * nou = (nod*)malloc(sizeof(nod));
nou->aparitii = 0;
nou->x = numar;
nou->urm = *prim;
*prim = nou;
}
else
{
nod *it = *prim;
for(; it->urm ; it = it->urm )
if( it->x == numar )
{
it->aparitii++;
if( k < it->aparitii )
{
k = it->aparitii;
elmaj = it->x;
}
}
else if( it->urm->x > numar )
{
nod * nou = (nod*)malloc(sizeof(nod));
nou->aparitii = 0;
nou->x = numar;
nou->urm = it->urm;
it->urm = nou;
return;
}
nod * nou = (nod*)malloc(sizeof(nod));
nou->aparitii = 0;
nou->x = numar;
nou->urm = NULL;
it->urm = nou;
}
}
int main()
{
freopen(InFile,"r",stdin);
freopen(OutFile,"w",stdout);
nod *prim = NULL;
int N,x,i;
scanf("%d",&N);
for( i = 1 ; i <= N ; ++i )
{
scanf("%d",&x);
Inserare(&prim,x);
}
printf("%d %d",elmaj,k+1);
fclose(stdin);
fclose(stdout);
return 0;
}