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

From AdonaiMedrado.Pro.Br
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 Posicao = 0;
 
			for (int i = 0; i < Memoria.Length; i++) {
 
				aux = int.Parse(Console.ReadLine());
				if (aux <= Tamanho) {
					Memoria[Posicao] = aux;
					Posicao++;
					Tamanho = Tamanho - aux;
				}
 
			}
 
			int Liberacoes = int.Parse(Console.ReadLine());
			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);
 
		}
 
 
 
	}
}