Advertisement
Guest User

Untitled

a guest
Mar 25th, 2013
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.07 KB | None | 0 0
  1. //#pragma comment(linker, "/STACK:16777216")
  2. #include <fstream>
  3. #include <iostream>
  4. #include <string>
  5. #include <math.h>
  6. #include <set>
  7. #include <vector>
  8. #include <map>
  9. #include <queue>
  10. #include <stdio.h>
  11. #include <stack>
  12. #include <algorithm>
  13. #include <list>
  14. #include <memory.h>
  15.  
  16. #define y0 sdkfaslhagaklsldk
  17. #define y1 aasdfasdfasdf
  18. #define yn askfhwqriuperikldjk
  19. #define j1 assdgsdgasghsf
  20. #define tm sdfjahlfasfh
  21.  
  22. #define  INF 100000000
  23. #define eps 1e-11
  24. #define M_PI 3.141592653589793
  25. //#define mx 1000000000000ll
  26. #define bs 1000000007
  27. //#define free asdfasdfsdadsg
  28. //#define szz 400
  29. //#define pb push_back
  30. #define MAXN 100000
  31. #define free afdshjioey
  32. //#define SIZE 60
  33. using namespace std;
  34.  
  35. long n;
  36. struct point{double x,y;};
  37.  
  38. long calc;
  39. vector<pair<point,int > > v;
  40. double x,y,r,xx1,ans,yy1,xx2,yy2,x1,y1,x2,y2,a,b,c;
  41. double dd,mult,ax,ay,bx,by;
  42. point p1,p2;
  43.  
  44. bool cmp (pair <point, int> const & a, pair <point, int> const & b)
  45. {
  46.      if (a.first.x>b.first.x)return true;
  47.      if (a.first.x<b.first.x)return false;
  48.      if (a.first.y>b.first.y)return true;
  49.      return false;
  50. }
  51.  
  52. int main(){
  53. //freopen("horseraces.in","r",stdin);
  54. //freopen("horseraces.out","w",stdout);
  55. //freopen("C:/input.txt","r",stdin);
  56. //freopen("C:/output.txt","w",stdout);
  57. ios_base::sync_with_stdio(0);
  58.  
  59. xx1=yy1=0;
  60. xx2=yy2=1;
  61. a=y1-y2;b=x2-x1;
  62. c=x1*y2-x2*y1;
  63.  
  64.  
  65. n=500000;
  66.  
  67. for (int i=1;i<=n;i++)
  68. {
  69.     x=y=i;
  70.     r=100;
  71.     x1=xx1-x;x2=xx2-x;
  72.     y1=yy1-y;y2=yy2-y;
  73.      a=y1-y2;b=x2-x1;
  74.      c=x1*y2-x2*y1;
  75.     double tt=a*a+b*b;
  76.    
  77. double x0 = -a*c/(a*a+b*b),  y0 = -b*c/(tt);
  78. if (c*c > r*r*(a*a+b*b)+eps)continue;
  79.  
  80. else if (fabs (c*c - r*r*(tt)) < eps) {
  81. continue;
  82. }
  83. else {dd = r*r - c*c/(tt);
  84. mult = sqrt (dd / (tt));
  85.     ax = x0 + b * mult;
  86.     bx = x0 - b * mult;
  87.     ay = y0 - a * mult;
  88.     by = y0 + a * mult;
  89.    
  90. p1.x=ax+x;p1.y=ay+y;
  91. p2.x=bx+x;p2.y=by+y;
  92. if (cmp(make_pair(p1,0),make_pair(p2,0)))swap(p1,p2);
  93.  
  94. v.push_back(make_pair(p1,0));v.push_back(make_pair(p2,1));
  95. }
  96. }
  97.  
  98. sort(v.begin(),v.end(),cmp);
  99.  
  100. cin.get();cin.get();
  101. return 0;}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement