Pagini recente » Cod sursa (job #34007) | Cod sursa (job #1552688) | Cod sursa (job #3204897) | Cod sursa (job #2983034) | Cod sursa (job #63381)
Cod sursa(job #63381)
#include <cstdio>
#include <stdlib.h>
FILE *in = fopen("secventa.in","r"), *out = fopen("secventa.out","w");
int n,k,*a;
int *b,nr=0;
int pozitia(int x)
{
for ( int i = 0; i < n; ++i )
if (a[i]==x) return i;
return -1;
}
int main()
{
fscanf(in, "%d", &n);
fscanf(in, "%d", &k);
a= (int *) malloc(n*sizeof(int));
b= (int *) malloc(n*sizeof(int));
for ( int i = 0; i < n; ++i )
{
fscanf(in, "%d", &a[i]);
if (i<k)
b[nr++]=a[i];
}
for ( int i = k; i < n; ++i )
{
//verific daca a[i] e mai mare decat vreun element ales
int f=0;
for (int j=0;j<nr;j++)
if (a[i]>a[j])
{
f=1;
break;
}
if (f)
{
b[nr++]=a[i];
//elimin din lista daca e cazul
for (int j=0;j<nr-2;j++)
if (a[j]<a[i] || pozitia(a[j])-pozitia(a[i])>k)
{
b++;
nr--;
}
}
}
// printf("\n**\n");
// for (int j=0;j<nr;j++)
// printf("%d ",b[j]);
// printf("\n**\n");
// printf("%d %d %d",pozitia(b[0])+1,pozitia(b[nr-1])+1,b[0]);
fprintf(out,"%d %d %d",pozitia(b[0])+1,pozitia(b[nr-1])+1,b[0]);
return 0;
}