Difference between revisions of "Solução: Problema da fragmentação de memória (Arleson Nunes)"
From AdonaiMedrado.Pro.Br
Line 25: | Line 25: | ||
aux = int.Parse(Console.ReadLine()); | aux = int.Parse(Console.ReadLine()); | ||
if (aux <= Tamanho) { | if (aux <= Tamanho) { | ||
− | Memoria[ | + | Memoria[Posicao] = aux; |
Posicao++; | Posicao++; | ||
Tamanho = Tamanho - aux; | Tamanho = Tamanho - aux; | ||
Line 32: | Line 32: | ||
} | } | ||
− | int | + | int Liberacoes = int.Parse(Console.ReadLine()); |
Posicao = 0; | Posicao = 0; | ||
− | for (int j = 0; j < | + | for (int j = 0; j < Liberacoes; j++) { |
Posicao = int.Parse(Console.ReadLine()); | Posicao = int.Parse(Console.ReadLine()); |
Latest revision as of 00:08, 8 April 2009
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); } } }