Advertisement
Nickpips

Untitled

Jan 18th, 2016 (edited)
34
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.81 KB | None | 0 0
  1. import java.awt.Point;
  2. import java.io.File;
  3. import java.io.FileNotFoundException;
  4. import java.io.PrintWriter;
  5. import java.util.Scanner;
  6.  
  7. public class Main {
  8.     private Scanner scan;
  9.    
  10.     public void run() throws FileNotFoundException {
  11.         scan = new Scanner(new File("./mowing.in"));
  12.         int n, t;
  13.         n = scan.nextInt();
  14.         t = scan.nextInt();
  15.  
  16.         Point coords[] = new Point[ n ];
  17.         for( int i = 0; i < n; i++ )
  18.         {
  19.             coords[i] = new Point();
  20.             coords[i].x = scan.nextInt();
  21.             coords[i].y = scan.nextInt();
  22.         }
  23.  
  24.         int fh = (coords[0].y == coords[1].y) ? 1 : 0;
  25.  
  26.         int ANS = 0;
  27.  
  28.         for( int i = n-1; i > 0; i-- )
  29.         {
  30.             for( int j = i-t-1; j > 0; j-- )
  31.             {
  32.                 if( i % 2 == fh ) // if horiz
  33.                 {
  34.                     int bigx = Math.max( coords[i].x, coords[i-1].x );
  35.                     int smallx = Math.min( coords[i].x, coords[i-1].x );
  36.                     int bigy = Math.max( coords[j].y, coords[j-1].y );
  37.                     int smally = Math.min( coords[j].y, coords[j-1].y );
  38.  
  39.                     if( coords[i].y > smally && coords[i].y < bigy &&
  40.                         coords[j].x > smallx && coords[j].x < bigx )
  41.                     {
  42.                         ANS++;
  43.                     }
  44.                 } else // if vert
  45.                 {
  46.                     int bigy = Math.max( coords[i].y, coords[i-1].y );
  47.                     int smally = Math.min( coords[i].y, coords[i-1].y );
  48.                     int bigx = Math.max( coords[j].x, coords[j-1].x );
  49.                     int smallx = Math.min( coords[j].x, coords[j-1].x );
  50.  
  51.                     if( coords[j].y > smally && coords[j].y < bigy &&
  52.                         coords[i].x > smallx && coords[i].x < bigx )
  53.                     {
  54.                         ANS++;
  55.                     }
  56.                 }
  57.             }
  58.         }
  59.        
  60.         PrintWriter pw = new PrintWriter(new File("./mowing.out"));
  61.         pw.println( ANS );
  62.         pw.close();
  63.         scan.close();
  64.     }
  65.  
  66.     public static void main(String[] args) {
  67.         Main main = new Main();
  68.         try {
  69.             main.run();
  70.         } catch (FileNotFoundException e) {
  71.             // TODO Auto-generated catch block
  72.             e.printStackTrace();
  73.         }
  74.     }
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement