title: compile error: cannot find symbol: In, StdIn and StdOut
body: <p>The code is from 
  <a href="http://algs4.cs.princeton.edu/11model/BinarySearch.java.html">http://algs4.cs.princeton.edu/11model/BinarySearch.java.html</a> for Algorithms textbook.</p>
  
  <pre class="lang-java prettyprint-override"><code>import java.util.Arrays;
  
  public class BinarySearch {
  
      // precondition: array a[] is sorted
      public static int rank(int key, int[] a) {
          int lo = 0;
          int hi = a.length - 1;
          while (lo &lt;= hi) {
              // Key is in a[lo..hi] or not present.
              int mid = lo + (hi - lo) / 2;
              if      (key &lt; a[mid]) hi = mid - 1;
              else if (key &gt; a[mid]) lo = mid + 1;
              else return mid;
          }
          return -1;
      }
  
      public static void main(String[] args) {
          int[] whitelist = In.readInts(args[0]);
  
          Arrays.sort(whitelist);
  
          // read key; print if not in whitelist
          while (!StdIn.isEmpty()) {
              int key = StdIn.readInt();
              if (rank(key, whitelist) == -1)
                  StdOut.println(key);
          }
      }
  }
  </code></pre>
  
  <p>I get this error</p>
  
  <pre><code>$ javac BinarySearch.java 
  BinarySearch.java:44: cannot find symbol
  symbol  : variable In
  location: class BinarySearch
          int[] whitelist = In.readInts(args[0]);
                            ^
  BinarySearch.java:49: cannot find symbol
  symbol  : variable StdIn
  location: class BinarySearch
          while (!StdIn.isEmpty()) {
                  ^
  BinarySearch.java:50: cannot find symbol
  symbol  : variable StdIn
  location: class BinarySearch
              int key = StdIn.readInt();
                        ^
  BinarySearch.java:52: cannot find symbol
  symbol  : variable StdOut
  location: class BinarySearch
                  StdOut.println(key);
                  ^
  4 errors
  </code></pre>