fork download
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. struct thing
  6. {
  7. long long x,v;
  8. };
  9.  
  10. struct query
  11. {
  12. long long x,timenom,timedenom;
  13. vector<int> ans;
  14. };
  15.  
  16. int main()
  17. {
  18. ios::sync_with_stdio(false);
  19.  
  20. int n,q;
  21. cin >> n >> q;
  22.  
  23. vector<thing> runners(n);
  24. for(int i=0;i<n;++i)
  25. cin >> runners[i].x >> runners[i].v;
  26.  
  27. vector<query> Q(q);
  28.  
  29. for(int i=0;i<q;++i)
  30. {
  31. cin >> Q[i].x;
  32. Q[i].timenom = 2000000000,Q[i].timedenom = 1;
  33. }
  34.  
  35. for(int i=0;i<n;++i)
  36. for(int k=0;k<q;++k)
  37. {
  38. long long time = abs(Q[k].x-runners[i].x)*Q[k].timedenom;
  39.  
  40. if(time < Q[k].timenom*runners[i].v)
  41. {
  42. Q[k].ans.clear();
  43. Q[k].timenom = abs(Q[k].x-runners[i].x);
  44. Q[k].timedenom = runners[i].v;
  45. Q[k].ans.push_back(i+1);
  46. }
  47. else if (time == Q[k].timenom*runners[i].v)
  48. Q[k].ans.push_back(i+1);
  49. }
  50.  
  51. for(int i=0;i<q;++i)
  52. {
  53. cout << Q[i].ans.size();
  54. sort(Q[i].ans.begin(),Q[i].ans.end());
  55. for(int k=0;k<Q[i].ans.size();++k)
  56. cout << " " << Q[i].ans[k];
  57. cout << "\n";
  58. }
  59.  
  60. return 0;
  61. }
  62.  
Success #stdin #stdout 0s 15240KB
stdin
4 7
10 5
30 1
20 4
100 1
5 31 22 15 85 60 61
stdout
1 1
1 2
1 3
1 1
2 1 4
2 1 3
1 1