using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Algorithms05
{
class Program
{
static void zad1()
{
int[] mandaty;
int[] glosy;
float[] calcTab;
float max;
int groupCount, mandatesCount, maxInd = 0;
Console.Write("Podaj liczbe partii: ");
groupCount = int.Parse(Console.ReadLine());
mandaty = new int[groupCount];
glosy = new int[groupCount];
calcTab = new float[groupCount];
Console.Write("Podaj liczbe mandatow: ");
mandatesCount = int.Parse(Console.ReadLine());
for (int i = 0; i < groupCount; i++)
{
Console.Write("Podaj liczbe glosow na partie " + (i + 1) + ": ");
glosy[i] = int.Parse(Console.ReadLine());
}
for (int i = 0; i < groupCount; i++) mandaty[i] = 0;
for (int i = 0; i < groupCount; i++) calcTab[i] = glosy[i];
for (int i = 0; i < mandatesCount; i++)
{
max = -1;
for (int j = 0; j < groupCount; j++)
{
if (max < calcTab[j])
{
max = calcTab[j];
maxInd = j;
}
}
mandaty[maxInd]++;
calcTab[maxInd] = (float)((glosy[maxInd] * 1.0) / (mandaty[maxInd] + 1.0));
}
for (int i = 0; i < groupCount; i++)
{
Console.WriteLine("Partia " + (i + 1) + ": " + mandaty[i]);
}
Console.ReadLine();
}
static void zad3()
{
int[] wartosc = { 10, 50, 70 };
int[] waga = { 10, 20, 30 };
int pojemnosc = 40;
int ilosc = 3;
int[,] plecak = new int[ilosc + 1, pojemnosc + 1];
for (int i = 0; i <= ilosc; i++)
{
for (int j = 0; j <= pojemnosc; j++)
{
if (i == 0 || j == 0)
{
plecak[i, j] = 0;
}
else if (waga[i - 1] <= j)
{
plecak[i, j] = Math.Max(wartosc[i - 1] + plecak[i - 1, j - waga[i - 1]], plecak[i - 1, j]);
}
else
{
plecak[i, j] = plecak[i - 1, j];
}
}
}
Console.Write("Wynik: {0}", plecak[ilosc, pojemnosc]);
Console.ReadLine();
}
static void Main(string[] args)
{
zad1();
}
}
}