Advertisement
MinhNGUYEN2k4

Untitled

Nov 14th, 2021
1,741
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.71 KB | None | 0 0
  1. //Nguyen Huu Hoang Minh
  2. #include <bits/stdc++.h>
  3. #define sz(x) int(x.size())
  4. #define all(x) x.begin(),x.end()
  5. #define reset(x) memset(x, 0,sizeof(x))
  6. #define pb push_back
  7. #define mp make_pair
  8. #define fi first
  9. #define se second
  10. #define N 2005
  11. #define remain(x) if (x > MOD) x -= MOD
  12. #define ii pair<int, int>
  13. #define iiii pair< ii , ii >
  14. #define viiii vector< iiii >
  15. #define vi vector<int>
  16. #define vii vector< ii >
  17. #define bit(x, i) (((x) >> (i)) & 1)
  18. #define Task "test"
  19. #define int long long
  20.  
  21. using namespace std;
  22.  
  23. typedef long double ld;
  24. const int inf = 1e10;
  25. const int minf = -1e10;
  26.  
  27. int n;
  28. double vb, vs;
  29. double x[105];
  30. double u, v;
  31.  
  32. void readfile()
  33. {
  34.     ios_base::sync_with_stdio(false);
  35.     cin.tie(0);cout.tie(0);
  36.     if (fopen(Task".inp","r"))
  37.     {
  38.         freopen(Task".inp","r",stdin);
  39.         //freopen(Task".out","w",stdout);
  40.     }
  41.     cin >> n >> vb >> vs;
  42.     for(int i=1; i<=n; i++) cin >> x[i];
  43.     cin >> u >> v;
  44. }
  45.  
  46. double dis(double x, double y, double u, double v){
  47.     double dx = (x-u)*(x-u);
  48.     double dy = (y-v)*(y-v);
  49.     return sqrt(dx+dy);
  50. }
  51.  
  52. double f(double x){
  53.     double kc = x/vb;
  54.     kc += dis(x,0,u,v)/vs;
  55.     return kc;
  56. }
  57.  
  58. void proc()
  59. {
  60.     double ans = 1e11;
  61.     double cdis;
  62.     int id;
  63.     for(int i=2; i<=n; i++){
  64.         double tmp = f(x[i]);
  65.         if (tmp < ans){
  66.             ans = tmp;
  67.             cdis = dis(x[i],0,u,v);
  68.             id = i;
  69.         }
  70.         else if (tmp==ans){
  71.             double tdis = dis(x[i],0,u,v);
  72.             if (tdis < cdis){
  73.                 id = i;
  74.                 cdis = tdis;
  75.             }
  76.         }
  77.     }
  78.     cout << id;
  79. }
  80.  
  81. signed main()
  82. {
  83.     readfile();
  84.     proc();
  85.     return 0;
  86. }
  87.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement