Difference between revisions of "Solução: Problema da fragmentação de memória (Arleson Nunes)"

From AdonaiMedrado.Pro.Br
Jump to: navigation, search
Line 16: Line 16:
 
public static void Fragmentar() {
 
public static void Fragmentar() {
 
 
int tamanho = int.Parse(Console.ReadLine());
+
int Tamanho = int.Parse(Console.ReadLine());
int[] memoria = new int[int.Parse(Console.ReadLine())];
+
int[] Memoria = new int[int.Parse(Console.ReadLine())];
 
int aux = 0;
 
int aux = 0;
int cont = 0;
+
int Posicao = 0;
 
 
for (int i = 0; i < memoria.Length; i++) {
+
for (int i = 0; i < Memoria.Length; i++) {
 
 
 
aux = int.Parse(Console.ReadLine());
 
aux = int.Parse(Console.ReadLine());
if (aux <= tamanho) {
+
if (aux <= Tamanho) {
memoria[cont] = aux;
+
Memoria[cont] = aux;
cont++;
+
Posicao++;
tamanho = tamanho - aux;
+
Tamanho = Tamanho - aux;
 
}
 
}
 
 
Line 33: Line 33:
 
 
 
int liberacoes = int.Parse(Console.ReadLine());
 
int liberacoes = int.Parse(Console.ReadLine());
int posicao = 0;
+
Posicao = 0;
 
 
 
for (int j = 0; j < liberacoes; j++) {
 
for (int j = 0; j < liberacoes; j++) {
 
 
posicao = int.Parse(Console.ReadLine());
+
Posicao = int.Parse(Console.ReadLine());
if (memoria[posicao] > tamanho) {
+
if (Memoria[Posicao] > Tamanho) {
tamanho = memoria[posicao];
+
Tamanho = Memoria[Posicao];
 
}
 
}
memoria[posicao] = 0;
+
Memoria[Posicao] = 0;
 
 
 
}
 
}
 
 
Console.WriteLine(tamanho);
+
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);
 
		}
 
 
 
	}
}