Pagini recente » Cod sursa (job #258845) | Cod sursa (job #2376972) | Cod sursa (job #2645092) | Cod sursa (job #1691294) | Cod sursa (job #2364337)
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
int main()
{
FILE *read=fopen("elmaj.in","r");
FILE *write=fopen("elmaj.out","w");
int length_of_array;
int *array;
fscanf(read,"%d",&length_of_array);
array=(int*)calloc(length_of_array,sizeof(int));
int numar=-1;
int contor=0;
for(int i=0;i<length_of_array;i++)
fscanf(read,"%d",&array[i]);
int i=1;
bool special_case=false;
while(i<length_of_array)
{
if(i>0)
{
if(array[i]==array[i-1] && contor==0)
{
contor=2;
numar=array[i];
i++;
}
else if(array[i]==numar && contor!=0)
{
i++;
contor++;
}
else if(contor==0 && array[i-1]!=array[i])
{
i=i+2;
if(i>=length_of_array)
{
numar=array[length_of_array-1];
special_case=true;
}
}
else if(contor!=0 && numar!=array[i])
{
contor--;
if(contor!=0)
i++;
else
{
i=i+2;
if(i>=length_of_array)
{
numar=array[length_of_array-1];
special_case=true;
}
}
}
}
}
int aparitii=0;
if(contor>0)
{
for(int i=0;i<length_of_array;i++)
if(array[i]==numar)
aparitii++;
fprintf(write,"%d %d\n",numar,aparitii);
}
else if(special_case==true)
{
for(int i=0;i<length_of_array;i++)
if(array[i]==numar)
aparitii++;
fprintf(write,"%d %d\n",numar,aparitii);
}
free(array);
fclose(read);
fclose(write);
return 0;
}