Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <list>
- using namespace std;
- struct Rocket {
- int TLiftOff;
- int Velocity;
- int timeOfHit;
- };
- int main()
- {
- vector<Rocket> vec;
- int queweOfHits[] = { 0,1,2,3 };
- int difBetweenHits[] = { 0,0,0,0 };
- int timeR;
- int range;
- int dir;
- bool DEAD = false;
- int dir_firstHit;
- int countofdefeated = 0;
- for (int i = 0; i != 4; i++) {
- Rocket temp;
- cin >> temp.TLiftOff >> temp.Velocity;
- vec.push_back(temp);
- }
- cin >> timeR >> range;
- int firstdirtime = 1001;
- int firsthitdirtime = 1001;
- for (int i = 0; i != 4; i++) {
- if (firstdirtime > vec[i].TLiftOff)
- dir = i;
- vec[i].timeOfHit = vec[i].TLiftOff + range / vec[i].Velocity;
- }
- for (int q = 0; q != 4; q++) {
- for (int i = 0; i != 3; i++) {
- if (vec[queweOfHits[i]].timeOfHit > vec[queweOfHits[i + 1]].timeOfHit) {
- int t = queweOfHits[i];
- queweOfHits[i] = queweOfHits[i + 1];
- queweOfHits[i + 1] = t;
- }
- else if (vec[queweOfHits[i]].timeOfHit == vec[queweOfHits[i + 1]].timeOfHit) {
- if (queweOfHits[i] - dir > 1 or queweOfHits[i] - dir < -1) {
- int t = queweOfHits[i + 1];
- queweOfHits[i + 1] = queweOfHits[i];
- queweOfHits[i] = t;
- }
- }
- }
- }
- difBetweenHits[0] = vec[queweOfHits[0]].timeOfHit;
- for (int i = 1; i != 4; i++) {
- difBetweenHits[i] = vec[queweOfHits[i]].timeOfHit - vec[queweOfHits[i - 1]].timeOfHit;
- }
- for (int i = 0; i != 4; i++) {
- if (dir == queweOfHits[i]) {
- countofdefeated++;
- }
- else {
- if (queweOfHits[i] - dir > 1 or queweOfHits[i] - dir < -1) {
- //Поворотов не более 2
- dir = queweOfHits[i];
- if (difBetweenHits[i] >= timeR * 2) {
- countofdefeated++;
- }
- else { DEAD = true; goto dead;}
- }
- else {
- dir = queweOfHits[i];
- if (difBetweenHits[i] >= timeR) {
- countofdefeated++;
- }
- else { DEAD = true; goto dead; }
- }
- }
- }
- dead:
- if (DEAD) {
- cout << countofdefeated << endl;
- }
- else {
- cout << "ALIVE" << endl;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement