Advertisement
EvlogiHr

Tubes

Feb 13th, 2013
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.04 KB | None | 0 0
  1. using System;
  2.  
  3. class Tubes
  4. {
  5.     static void Main()
  6.     {
  7.         int n = int.Parse(Console.ReadLine());
  8.         int m = int.Parse(Console.ReadLine());
  9.         int left = 0;
  10.         int right = 0;
  11.         int mid = 0;
  12.         int[] tube = new int[n];
  13.         for (int i = 0; i < n; i++)
  14.         {
  15.             tube[i] = int.Parse(Console.ReadLine());
  16.             if (right < tube[i])
  17.             {
  18.                 right = tube[i];
  19.             }
  20.         }
  21.  
  22.         mid = (left + right) / 2;
  23.         int maxTube = -1;
  24.         long numOfTubes = 0;
  25.         while (left <= right)
  26.         {
  27.             numOfTubes = 0;
  28.             for (int i = 0; i < n; i++)
  29.             {
  30.                 numOfTubes += tube[i] / mid;
  31.             }
  32.             if (numOfTubes >= m)
  33.             {
  34.                 left = mid + 1;
  35.                 maxTube = mid;
  36.             }
  37.             else
  38.             {
  39.                 right = mid - 1;
  40.             }
  41.             mid = (left + right) / 2;
  42.         }
  43.  
  44.         Console.WriteLine(maxTube);
  45.     }
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement