Pagini recente » Istoria paginii runda/moisil2017-10/clasament | Cod sursa (job #1921146) | Cod sursa (job #651179) | Cod sursa (job #1054446) | Cod sursa (job #798189)
Cod sursa(job #798189)
#include <stdio.h>
#include <cstdlib>
FILE *fin,*fout;
long i,n,v[100000],vec[100000],solutie,sol[100000],j,prec,ok,l;
int compare_ints(const void* a, const void* b)
{
int* arg1 = (int*) a;
int* arg2 = (int*) b;
if( *arg1 < *arg2 ) return -1;
else if( *arg1 == *arg2 ) return 0;
else return 1;
}
int main()
{
fin=fopen("scmax.in","r");
fscanf(fin,"%ld",&n);
for(i=1;i<=n;i++)
{
fscanf(fin,"%ld",&v[i]);
vec[i]=v[i];
}
/*for(i=1;i<n;i++)
{
for(j=i;j<=n;j++)
{
if(v[i]==v[j])
{
}
}
}*/
std::qsort(v, n, sizeof(int), compare_ints);
prec=0;
for(i=1;i<=n;i++)
{
for(j=n;j>=1;j--)
{
if(v[i]==vec[j])
{
ok=1;
for(l=1;l<=solutie;l++)
{
if(sol[l]==v[i])
{
ok=0;
}
}
if((j>=prec)&&(ok==1))
{
prec=j;
solutie++;
sol[solutie]=v[i];
}
}
}
}
fout=fopen("scmax.out","w");
fprintf(fout,"%ld\n",solutie);
for(i=1;i<=solutie;i++)
{
fprintf(fout,"%ld ",sol[i]);
}
return 0;
}