fork download
  1. // PIZZALOC
  2.  
  3. #include<bits/stdc++.h>
  4. #define ull unsigned long long
  5. #define ll long long
  6. #define in(x) scanf("%d", &x)
  7. #define inll(x) scanf("%lld",&x)
  8. #define inl(x) scanf("%llu", &x)
  9. #define in2(x, y) scanf("%d %d", &x, &y)
  10. #define in3(x,y,z) scanf("%d %d %d",&x,&y,&z)
  11. #define out1(x) printf("%d\n",x)
  12. #define out2(x,y) printf("%d %d\n",x,y)
  13. #define out3(x,y,z) printf("%d %d %d\n",x,y,z)
  14. #define ochar(x) printf("%c\n",x)
  15. #define ostr(x) printf("%s\n",x)
  16. #define nl putchar('\n')
  17. #define V(type,name) vector<type> name
  18. #define FOR(i,x,n) for(i=x;i<n;i++)
  19. #define _FOR(i,n) FOR(i,0,n)
  20. #define ALL(v) (v).begin(),(v).end()
  21. #define display(v) for(typeof((v).begin()) it = (v).begin(); it != (v).end(); ++it){ cout<<*it<<" "; nl;}
  22. #define pb push_back
  23. #define sz(v) (int)((v).size())
  24. #define MAX 1000002
  25. #define po(x) ((double)(x)*(x))
  26. #define _abs(x) ( (x) < 0 ) ? - (x) : (x)
  27. namespace bug
  28. {
  29. template<typename t> std::string to_string(t& x)
  30. {
  31. std::ostringstream ss;
  32. ss<<x;
  33. return x.str();
  34. }
  35. }
  36.  
  37. using namespace std;
  38.  
  39. typedef struct
  40. {
  41. int x;
  42. int y;
  43. } Point;
  44.  
  45. typedef struct
  46. {
  47. Point pos;
  48. int s;
  49. } Solitaires;
  50.  
  51. typedef struct
  52. {
  53. double d;
  54. int s;
  55. } Maximal;
  56.  
  57. double dist(Point a, Solitaires b)
  58. {
  59. return sqrt(pow((b.pos.x - a.x),2) + pow((b.pos.y - a.y),2));
  60. }
  61.  
  62. int main()
  63. {
  64.  
  65. //freopen("input.txt","r",stdin);
  66. //freopen("output.txt","w",stdout);
  67. int i,t,n,k,m,r,s,x,y;
  68. Point location[20];
  69. Solitaires solitaire[100];
  70. Maximal MaxNum[20][100];
  71. int mNum[20]={0};
  72. in2(k,r);
  73. in(m);
  74. _FOR(i,m)
  75. {
  76. in2(x,y);
  77. location[i].x = x,location[i].y = y;
  78. }
  79. in(n);
  80. _FOR(i,n)
  81. {
  82. in3(x,y,s);
  83. solitaire[i].pos.x = x, solitaire[i].pos.y = y, solitaire[i].s = s;
  84. }
  85. _FOR(i,m)
  86. {
  87. s = 0;
  88. _FOR(t,n)
  89. {
  90. cout<<t+1<<" dist "<< dist(location[i],solitaire[t])<<" "<<solitaire[t].s<<endl;
  91. MaxNum[i][t].d = dist(location[i],solitaire[t]);
  92. MaxNum[i][t].s = solitaire[t].s;
  93. if(MaxNum[i][t].d <= r)
  94. s += MaxNum[i][t].s;
  95. mNum[i] = s;
  96. }
  97. }
  98. sort(mNum,mNum+m);
  99. s = 0;
  100. FOR(i,(m-k),m)
  101. s+=mNum[i];
  102. out1(s);
  103. return 0;
  104. }
  105.  
  106.  
Success #stdin #stdout 0s 3304KB
stdin
2 2 
3 
1 0 
4 0 
7 0 
4 
0 0 1 
3 0 7 
5 0 9 
8 0 1 
stdout
1 dist 1 1
2 dist 2 7
3 dist 4 9
4 dist 7 1
1 dist 4 1
2 dist 1 7
3 dist 1 9
4 dist 4 1
1 dist 7 1
2 dist 4 7
3 dist 2 9
4 dist 1 1
26