Inicio > Programacion > Solucion Problema CIIC 2009 | Parcelas

Solucion Problema CIIC 2009 | Parcelas

Martes, 25 de Agosto de 2009

Bueno practicando para la OCHI, me tope con los problemas de este año 2009 (aqui) y empeze a hacer algunos ejercicios, pondre solo algunos en el blog, ahora el problema Nº1 “Parcelas”, hecho en C++ y compilado en Linux. No probe mucho el codigo, pero creo que esta bien, , lo dejo para descarga o clicken en seguir leyendo para ver el codigo:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <iostream>
#define ENTRADA "PARCELAS.ENT"
#define SALIDA "PARCELAS.SAL"
using namespace std;
int diferenciaentre(int a,int b);
FILE *entrada,*salida;

int main()
{
	entrada=fopen(ENTRADA,"r");
	int nparcelas,diferencia;
	fscanf(entrada,"%d %d",&nparcelas,&diferencia);
	int produccion[nparcelas];
	for(int i=0;i<nparcelas;i++){
		fscanf(entrada,"%d",&produccion[i]);
	}
	int resultados[nparcelas];
	for(int i_1=0;i_1<nparcelas;i_1++){
		resultados[i_1]=0;
		for(int z_1=0;z_1<nparcelas;z_1++){
			if(diferenciaentre(produccion[i_1],produccion[z_1])<=10){
				resultados[i_1]=resultados[i_1]+1;
			}
		}
	}
	for(int i_2=0;i_2<nparcelas;i_2++){
		for(int z_2=0;z_2<nparcelas;z_2++){
			if(resultados[i_2]>resultados[z_2]){
				int tmp=resultados[z_2];
				resultados[z_2]=resultados[i_2];
				resultados[i_2]=tmp;
			}
		}
	}
	int resultadototal=(resultados[0]-1);
	salida=fopen(SALIDA,"w");
	fprintf(salida,"%d",resultadototal);
}

int diferenciaentre(int a,int b){
	if(a==b){
		return 0;
	}
	if(a>b){
		return (a-b);
	}
	if(a<b){
		return (b-a);
	}
    return 0;
}

isseu Programacion , ,

  1. Sin comentarios aún.
  1. Sin trackbacks aún.