Processing math: 100%

USACO 2024 December Contest, Gold

Problem 1. Cowdependence


Contest has ended.

Log in to allow submissions in analysis mode


Farmer John's N (1N105) cows have been arranged into a line. The ith cow has label ai (1aiN). A group of cows can form a friendship group if they all have the same label and each cow is within x cows of all the others in the group, where x is an integer in the range [1,N]. Every cow must be in exactly one friendship group.

For each x from 1 to N, calculate the minimum number of friendship groups that could have formed.

INPUT FORMAT (input arrives from the terminal / stdin):

The first line consists of an integer N.

The next line contains a1...aN, the labels of each cow.

OUTPUT FORMAT (print output to the terminal / stdout):

For each x from 1 to N, output the minimum number of friendship groups for that x on a new line.

SAMPLE INPUT:

9
1 1 1 9 2 1 2 1 1

SAMPLE OUTPUT:

7
5
4
4
4
4
4
3
3

Here are examples of how to assign cows to friendship groups for x=1 and x=2 in a way that minimizes the number of groups. Each letter corresponds to a different group.

Example:

       1 1 1 9 2 1 2 1 1
x = 1: A B B C D E F G G (7 groups)
x = 1: A A B C D E F G G (7 groups, alternative grouping)
x = 2: A A A B C D C E E (5 groups)
x = 2: A A A B C D C D E (5 groups, alternative grouping)

SCORING:

  • Inputs 2-3: N5000
  • Inputs 4-7: ai10 for all i
  • Inputs 8-11: No label appears more than 10 times.
  • Inputs 12-20: No additional constraints.

Problem credits: Chongtian Ma

Contest has ended. No further submissions allowed.