Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- ifstream fin("program.in");
- ofstream fout("program.out");
- #define z7 10000000
- int n;
- float lat, lon, alt;
- float lat2, lon2, alt2;
- int ntime = 0;
- int id, time1, ntime2;
- int main()
- {
- fin >> n;
- for (int i = 1; i <= n; i++)
- {
- fin >> id >> time1;
- ifstream r (to_string(id) + ".csv");
- string namea, nameb;
- int takeoff;
- int m;
- r >> namea >> nameb >> takeoff >> m;
- int diff = time1 - takeoff;
- r.get();
- for (int j = 1; j <= m && ntime2 <= diff; j += 2)
- {
- char s[5000];
- r.getline(s, 5000);
- char* p = strtok(s, ",");
- ntime = atoi(p);
- p = strtok(0, ",");
- lat = atof(p);
- p = strtok(0, ",");
- lon = atof(p);
- p = strtok(0, ",");
- alt = atof(p);
- p = strtok(0, ",");
- r.getline(s, 5000);
- if (ntime > diff)
- break;
- p = strtok(s, ",");
- ntime2 = atoi(p);
- p = strtok(0, ",");
- lat2 = atof(p);
- p = strtok(0, ",");
- lon2 = atof(p);
- p = strtok(0, ",");
- alt2 = atof(p);
- p = strtok(0, ",");
- }
- if (ntime > ntime2)
- {
- swap(ntime, ntime2);
- swap(alt, alt2);
- swap(lon, lon2);
- swap(lat, lat2);
- }
- cout << diff << '\n';
- if (ntime == diff)
- {
- fout << lat << ' ' << lon << ' ' << alt << '\n';
- }
- else
- {
- fout << setprecision(10) << lat + ((((lat2 - lat) / (ntime2 - ntime)) * z7) / z7) * (diff - ntime) << ' ';
- fout << setprecision(10) << lon + ((((lon2 - lon) / (ntime2 - ntime)) * z7) / z7) * (diff - ntime) << ' ';
- fout << setprecision(10) << alt + ((((alt2 - alt) / (ntime2 - ntime)) * z7) / z7) * (diff - ntime) << '\n';
- r.close();
- }}
- fin.close();
- fout.close();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement