Cod sursa(job #419661)

Utilizator S7012MYPetru Trimbitas S7012MY Data 17 martie 2010 19:46:26
Problema Stramosi Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.3 kb
// stramosi.cpp : Defines the entry point for the console application.
//

//#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h> 

typedef int (*compfn)(const void*, const void*); //pointer catre functie de comparare

struct stramos { 
	int number,indice; 
};
struct stramos vect[2500] ; 
int  compare(struct stramos *, struct stramos *);
  

  
int main()
  
{
	int n,m,i,j,c,cc;
	FILE *f=fopen("stramosi.in","r");
	FILE *g=fopen("stramosi.out","w");
	fscanf(f,"%d %d",&n,&m);
	for(i=0; i<n; i++) {
		fscanf(f,"%d",&vect[i].number);
		vect[i].indice=i+1;
	}
	
	//qsort pt structura
    qsort((void *) &vect,              // Beginning address of array
    n,                                 // Number of elements in array
    sizeof(struct stramos),              // Size of each element
    (compfn)compare );                  // Pointer to compare function
	///
	for(i=0; i<m; i++) {
		fscanf(f,"%d %d",&c,&cc);
		while(cc--) {
			for(j=0; j<n && vect[j].indice!=c; j++);
			c=vect[j].number;
		}
		fprintf(g,"%d\n",c);
	}
	fclose(f);
	fclose(g);
	return 0;
}
  
int compare(struct stramos *elem1, struct stramos *elem2)
  
{
   if ( elem1->number < elem2->number)
      return -1;
   else if (elem1->number > elem2->number)
      return 1;
   else
      return 0;
}