Rating | Description |
1 |
Easiest problems. Just do what it says and there really aren't
any corner cases or implementation snags for the average competitor. |
2 |
Algorithmically easy, but maybe small implementation details
(how to convert 'a' to 0, 'b' to 1, etc.) are not known to some
beginning programmers. |
3 |
Straight-forward, but maybe requires an observation, along with
things like a sort or the use of a built in data struct like a set or
map. |
4 |
Tests something taught in Data Structures or Algorithms. Has
a relatively straight-forward implementation. Has relatively little
problem obfuscation. Something that looks like a great assignment for
a regular data structures or algorithms course. |
5 |
Tests something taught in Data Structures or Algorithms. Has
some annoying implementation details or observations to be made that
the average student might not be able to do without TA help. |
6 |
Tests something taught in Data Structures or Algorithms.
Requires non-trivial observations and/or really detail oriented code
with corner cases. Might include bitmasks and other things that many
students have difficulty applying seamlessly. |
7 |
Uses at least some idea or data structure not taught in
standard undergraduate courses, such as a binary index tree, segment
tree, range minimum query, binary lifting, etc. Often times, these
problems can be solved by regular undergraduates if an O(n^2) run
time was allowed, but the advanced material is necessary to bring
down the run time to O(nlgn). But, if you identify the efficient
technique, the code is reasonably clean in most cases. |
8 |
Like a 7 but with more problem obfuscation and more difficult
to code. |
9 |
Very few get these in contest and most of the time, they are
learning tools for later! |