Solução: Problema da fragmentação de memória (Arleson Nunes)

From AdonaiMedrado.Pro.Br
Revision as of 23:57, 7 April 2009 by 200.17.147.2 (Talk)

Jump to: navigation, search
using System;
 
namespace Fragmentacao
{
	class MainClass
	{
		public static void Main(string[] args)
		{
 
			Fragmentar();
 
		}
 
		public static void Fragmentar() {
 
			int tamanho = int.Parse(Console.ReadLine());
			int[] memoria = new int[int.Parse(Console.ReadLine())];
			int aux = 0;
			int cont = 0;
 
			for (int i = 0; i < memoria.Length; i++) {
 
				aux = int.Parse(Console.ReadLine());
				if (aux <= tamanho) {
					memoria[cont] = aux;
					cont++;
					tamanho = tamanho - aux;
				}
 
			}
 
			int liberacoes = int.Parse(Console.ReadLine());
			int posicao = 0;
 
			for (int j = 0; j < liberacoes; j++) {
 
				posicao = int.Parse(Console.ReadLine());
				if (memoria[posicao] > tamanho) {
					tamanho = memoria[posicao];
				}
				memoria[posicao] = 0;
 
			}
 
			Console.WriteLine(tamanho);
 
		}
 
 
 
	}
}