leetcode

Leetcode Solutions (0x6A73)
git clone https://git.pngu.org/leetcode
Log | Files | Refs | Submodules | README

distribute_candies_children2.c (638B)


// 2929. Distribute Candies Among Children II
#include "leetcode.h"

/*
 * you are given two positive integers 'n' and 'limit'. return the total number
 * of ways to distritube 'n' candies among 3 children such that no child gets
 * more than 'limit' candies.
 */

long long distributeCandies(int n, int limit) {
  long long cnt = 0;
  for (int i = fmax(0, n - 2 * limit); i <= fmin(limit, n); i++) {
    int j = fmin(limit, n - i) - fmax(0, n - i - limit) + 1;
    cnt += fmax(0, j);
  }
  return cnt;
}

int main() {
  printf("%lld\n", distributeCandies(5, 2)); // expect: 3
  printf("%lld\n", distributeCandies(3, 3)); // expect: 10
}