Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jun 21st, 2012  |  syntax: None  |  size: 0.56 KB  |  hits: 11  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. #include<stdio.h>
  2.  
  3. int solve1(int n,int k)
  4. {
  5.  int g1 = n%k ;
  6.  int g2 = k - g1 ;
  7.  int sz1 = n/k + 1 ;
  8.  int sz2 = n/k ;
  9.  int ret = g1*sz1*g2*sz2 + g1*(g1-1)*sz1*sz1/2 + g2*(g2-1)*sz2*sz2/2 ;
  10.  return ret ;
  11. }
  12.  
  13. int solve(int n,int e)
  14. {
  15.  int k,low = 1,high = n + 1 ;
  16.  while(low + 1 < high)
  17.  {
  18.   int mid = low + (high - low)/2 ;
  19.   k = solve1(n,mid) ;
  20.   if(k < e) low = mid ;
  21.   else high = mid ;
  22.  }
  23.  return high ;
  24. }
  25.  
  26. int main()
  27. {
  28.  int i,j,n,k,runs ;
  29.  scanf("%d",&runs) ;
  30.  while(runs--)
  31.  {
  32.   scanf("%d%d",&n,&k) ;
  33.   int ret = solve(n,k) ;
  34.   printf("%d\n",ret) ;
  35.  }
  36.  return 0 ;
  37. }