# Silver

The topics below are not exhaustive for this division.

Contest problems may contain topics not covered in the guide, or topics listed under different divisions!

### Modules Progress

### Problems Progress

## Sorting & Sets

Binary Search on a Sorted Array

Not Frequent

Quickly finding elements in a sorted array.

Sorting with Custom Comparators

Somewhat Frequent

If we use custom objects or if we want to sort elements in an order other than the default, then we'll need to define a custom comparator.

More Operations on Ordered Sets

Not Frequent

Using iterators with sets, finding the next element smaller or larger than a specified key in a set.

(Optional) C++ Sets with Custom Comparators

Rare

Incorporating custom comparators into STL objects.

## Misc. Topics

Most of these require sorting and/or sets as a prerequisite.

Prefix Sums

Somewhat Frequent

Computing range sum queries in constant time over a fixed array.

Two Pointers

Not Frequent

Iterating two monotonic pointers across an array to search for a pair of indices satisfying some condition in linear time.

Binary Search on the Answer

Somewhat Frequent

An extension on binary search to search beyond an array, and rather through possible answers.

Greedy Algorithms with Sorting

Somewhat Frequent

Solving greedy problems by sorting the input.

## Graphs

Every (?) Silver - Plat contest has at least one graph problem.

Depth First Search (DFS)

Very Frequent

Recursively traversing a graph.

Graph Two-Coloring

Rare

Introducing bipartite graphs.

Flood Fill

Somewhat Frequent

Finding connected components in a graph respresented by a grid.

Introduction to Tree Algorithms

Rare

Introducing a special type of graph: trees.

(Optional) Introduction to Functional Graphs

Rare

Directed graphs in which every vertex has exactly one outgoing edge.