Advertisement
PedalaVasile

Untitled

Apr 3rd, 2020
470
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.17 KB | None | 0 0
  1.  
  2. #include <bits/stdc++.h>
  3.  
  4. using namespace std;
  5.  
  6. ifstream fin("program.in");
  7. ofstream fout("program.out");
  8.  
  9. #define z7 10000000
  10.  
  11. int n;
  12.  
  13.  
  14. float lat, lon, alt;
  15. float lat2, lon2, alt2;
  16.  
  17. int ntime = 0;
  18.  
  19. int id, time1, ntime2;
  20.  
  21. int main()
  22. {
  23.     fin >> n;
  24.  
  25.     for (int i = 1; i <= n; i++)
  26.     {
  27.         fin >> id >> time1;
  28.  
  29.         ifstream r (to_string(id) + ".csv");
  30.  
  31.         string namea, nameb;
  32.         int takeoff;
  33.         int m;
  34.  
  35.         r >> namea >> nameb >> takeoff >> m;
  36.  
  37.         int diff = time1 - takeoff;
  38.  
  39.  
  40.         r.get();
  41.  
  42.  
  43.  
  44.         for (int j = 1; j <= m && ntime2 <= diff; j += 2)
  45.         {
  46.             char s[5000];
  47.  
  48.             r.getline(s, 5000);
  49.  
  50.  
  51.  
  52.             char* p = strtok(s, ",");
  53.  
  54.             ntime = atoi(p);
  55.             p = strtok(0, ",");
  56.  
  57.             lat = atof(p);
  58.             p = strtok(0, ",");
  59.  
  60.             lon = atof(p);
  61.             p = strtok(0, ",");
  62.  
  63.             alt = atof(p);
  64.             p = strtok(0, ",");
  65.  
  66.             r.getline(s, 5000);
  67.  
  68.  
  69.             if (ntime > diff)
  70.                 break;
  71.  
  72.             p = strtok(s, ",");
  73.  
  74.             ntime2 = atoi(p);
  75.             p = strtok(0, ",");
  76.  
  77.             lat2 = atof(p);
  78.             p = strtok(0, ",");
  79.  
  80.             lon2 = atof(p);
  81.             p = strtok(0, ",");
  82.  
  83.             alt2 = atof(p);
  84.             p = strtok(0, ",");
  85.  
  86.  
  87.  
  88.         }
  89.  
  90.         if (ntime > ntime2)
  91.         {
  92.             swap(ntime, ntime2);
  93.             swap(alt, alt2);
  94.             swap(lon, lon2);
  95.             swap(lat, lat2);
  96.  
  97.  
  98.         }
  99.  
  100.         cout << diff << '\n';
  101.  
  102.         if (ntime == diff)
  103.         {
  104.             fout << lat << ' ' << lon << ' ' << alt << '\n';
  105.         }
  106.         else
  107.         {
  108.  
  109.             fout  << setprecision(10) << lat + ((((lat2 - lat) / (ntime2 - ntime)) * z7) / z7) * (diff - ntime) << ' ';
  110.             fout  << setprecision(10) << lon + ((((lon2 - lon) / (ntime2 - ntime)) * z7) / z7) * (diff - ntime) << ' ';
  111.             fout  << setprecision(10) << alt + ((((alt2 - alt) / (ntime2 - ntime)) * z7) / z7) * (diff - ntime) << '\n';
  112.  
  113.  
  114.         r.close();
  115.     }}
  116.  
  117.     fin.close();
  118.     fout.close();
  119.     return 0;
  120. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement