Advertisement
Nickpips

Untitled

Jan 18th, 2016 (edited)
29
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.88 KB | None | 0 0
  1. #include <algorithm>
  2. #include <iostream>
  3. #include <sstream>
  4. #include <fstream>
  5. #include <math.h>
  6. #include <vector>
  7. #include <bitset>
  8. #include <string>
  9. #include <stack>
  10. #include <queue>
  11. #include <map>
  12. #include <set>
  13.  
  14. /*
  15. #pragma warning(disable:4244 4800)
  16. #include <gmp/mpirxx.h>
  17. // MPZ_CLASS
  18. // MPQ_CLASS
  19. // MPF_CLASS
  20. #pragma warning(default:4244 4800)
  21. */
  22.  
  23. #define _CRT_SECURE_NO_DEPRECATE
  24.  
  25. using namespace std;
  26.  
  27. typedef long long ll;
  28. typedef vector<int> vi;
  29. typedef vector<vi> vi2;
  30. typedef pair<int, int> ii;
  31. typedef vector<ii> vii;
  32.  
  33. #define FOR(i, a, b) \
  34. for (int i = int(a); i < int(b); i++)
  35. #define FORi(i, c) \
  36. for (auto i = (c).begin(); i != (c).end(); i++)
  37.  
  38. string name = "mowing";
  39. ifstream in( name+".in" );
  40. ofstream out( name+".out" );
  41.  
  42. // START
  43.  
  44.  
  45.  
  46. int main()
  47. {
  48.     // BEGIN
  49.     int n, t;
  50.     in >> n >> t;
  51.  
  52.     vi Xcoords( n );
  53.     vi Ycoords( n );
  54.     for( int i = 0; i < n; i++ )
  55.         in >> Xcoords[i] >> Ycoords[i];
  56.  
  57.     int fh = (Ycoords[0] == Ycoords[1]) ? 1 : 0;
  58.  
  59.     int ANS = 0;
  60.  
  61.     for( int i = n-1; i > 0; i-- )
  62.     {
  63.         for( int j = i-t-1; j > 0; j-- )
  64.         {
  65.             if( i % 2 == fh ) // if horiz
  66.             {
  67.                 int bigx = max( Xcoords[i], Xcoords[i-1] );
  68.                 int smallx = min( Xcoords[i], Xcoords[i-1] );
  69.                 int bigy = max( Ycoords[j], Ycoords[j-1] );
  70.                 int smally = min( Ycoords[j], Ycoords[j-1] );
  71.  
  72.                 if( Ycoords[i] > smally && Ycoords[i] < bigy &&
  73.                     Xcoords[j] > smallx && Xcoords[j] < bigx )
  74.                 {
  75.                     ANS++;
  76.                 }
  77.             } else // if vert
  78.             {
  79.                 int bigy = max( Ycoords[i], Ycoords[i-1] );
  80.                 int smally = min( Ycoords[i], Ycoords[i-1] );
  81.                 int bigx = max( Xcoords[j], Xcoords[j-1] );
  82.                 int smallx = min( Xcoords[j], Xcoords[j-1] );
  83.  
  84.                 if( Ycoords[j] > smally && Ycoords[j] < bigy &&
  85.                     Xcoords[i] > smallx && Xcoords[i] < bigx )
  86.                 {
  87.                     ANS++;
  88.                 }
  89.             }
  90.         }
  91.     }
  92.  
  93.     out << ANS;
  94.  
  95.     // END
  96.     in.close();
  97.     out.close();
  98.     return 0;
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement