Advertisement
Guest User

Untitled

a guest
Nov 23rd, 2014
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.20 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #pragma comment(linker, "/stack:16777216")
  3. #include <string>
  4. #include <vector>
  5. #include <map>
  6. #include <list>
  7. #include <iterator>
  8. #include <set>
  9. #include <queue>
  10. #include <iostream>
  11. #include <sstream>
  12. #include <stack>
  13. #include <deque>
  14. #include <cmath>
  15. #include <memory.h>
  16. #include <cstdlib>
  17. #include <cstdio>
  18. #include <cctype>
  19. #include <algorithm>
  20. #include <utility>
  21. #include <fstream>
  22. #include <time.h>
  23. using namespace std;
  24.  
  25. #define FOR(i, a, b) for(int i = (a); i < (b); ++i)
  26. #define RFOR(i, b, a) for(int i = (b) - 1; i >= (a); --i)
  27. #define REP(i, N) FOR(i, 0, N)
  28. #define RREP(i, N) RFOR(i, N, 0)
  29. #define FILL(A,value) memset(A,value,sizeof(A))
  30. #define ALL(V) V.begin(), V.end()
  31. #define SZ(V) (int)V.size()
  32. #define PB push_back
  33. #define MP make_pair
  34. #define y0 gfdssdfer
  35. #define y1 wetgwervbwqr
  36.  
  37. typedef long long Int;
  38.  
  39. const int MAX = 2007;
  40. const int MOD = 1000000007;
  41. const int INF = 1000000000;
  42.  
  43. int tests,n,x[1<<20],y[1<<20],r[1<<20],used[1<<20];
  44. int a[1<<20],b[1<<20];
  45.  
  46. long long gcd(long long a,long long b)
  47. {
  48. a=abs(a);
  49. b=abs(b);
  50. while (a&&b)a>b?a%=b:b%=a;
  51. return a+b;
  52. }
  53.  
  54. void dfs(long v)
  55. {
  56. used[v]=1;
  57. for (int i=1;i<=n;i++)
  58. {
  59. if (used[i])continue;
  60. int d1=(x[v]-x[i])*(x[v]-x[i])+(y[v]-y[i])*(y[v]-y[i]);
  61. int d2=(r[i]+r[v])*(r[i]+r[v]);
  62. if (d1!=d2)continue;
  63. long long t1,t2;
  64. t1=a[v];
  65. t2=b[v];
  66. t1*=r[v];
  67. t2*=r[i];
  68. long long q=gcd(t1,t2);
  69. // cout<<"@"<<q<<endl;
  70. t1/=q;
  71. t2/=q;
  72. a[i]=-t1;
  73. b[i]=t2;
  74. dfs(i);
  75. }
  76. }
  77.  
  78. int main(){
  79. //freopen("C:/input.txt","r",stdin);
  80. //freopen("C:/output.txt","w",stdout);
  81. ios_base::sync_with_stdio(0);
  82. //cin.tie(0);
  83.  
  84. cin>>tests;
  85. for (;tests;--tests)
  86. {
  87. cin>>n;
  88. for(int i=1;i<=n;i++)
  89. {
  90. cin>>x[i]>>y[i]>>r[i];
  91. }
  92. for (int i=1;i<=n;i++)
  93. used[i]=0;
  94. a[1]=b[1]=1;
  95. dfs(1);
  96. for (int i=1;i<=n;i++)
  97. {
  98. if (used[i]==0)
  99. cout<<"not moving"<<endl;
  100. else
  101. {
  102. cout<<abs(a[i]);
  103. if (b[i]>1)
  104. cout<<"/"<<abs(b[i]);
  105. if (a[i]>0)cout<<" clockwise"<<endl;
  106. else cout<<" counterclockwise"<<endl;
  107. }
  108. }
  109. }
  110.  
  111. cin.get();cin.get();
  112. return 0;}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement