Difference between revisions of "Solução: Problema da fragmentação de memória (Arleson Nunes)"
From AdonaiMedrado.Pro.Br
Line 16: | Line 16: | ||
public static void Fragmentar() { | public static void Fragmentar() { | ||
− | int | + | int Tamanho = int.Parse(Console.ReadLine()); |
− | int[] | + | int[] Memoria = new int[int.Parse(Console.ReadLine())]; |
int aux = 0; | int aux = 0; | ||
− | int | + | int Posicao = 0; |
− | for (int i = 0; i < | + | for (int i = 0; i < Memoria.Length; i++) { |
aux = int.Parse(Console.ReadLine()); | aux = int.Parse(Console.ReadLine()); | ||
− | if (aux <= | + | if (aux <= Tamanho) { |
− | + | Memoria[cont] = aux; | |
− | + | Posicao++; | |
− | + | Tamanho = Tamanho - aux; | |
} | } | ||
Line 33: | Line 33: | ||
int liberacoes = int.Parse(Console.ReadLine()); | int liberacoes = int.Parse(Console.ReadLine()); | ||
− | + | Posicao = 0; | |
for (int j = 0; j < liberacoes; j++) { | for (int j = 0; j < liberacoes; j++) { | ||
− | + | Posicao = int.Parse(Console.ReadLine()); | |
− | if ( | + | if (Memoria[Posicao] > Tamanho) { |
− | + | Tamanho = Memoria[Posicao]; | |
} | } | ||
− | + | Memoria[Posicao] = 0; | |
} | } | ||
− | Console.WriteLine( | + | Console.WriteLine(Tamanho); |
} | } |
Revision as of 00:06, 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[cont] = 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); } } }