int main(int argc, char* argv[]) { if(argc < 3){ printf("Неверное количество аргументов\n"); return -1; } int places = atoi(argv[1]); int pass = atoi(argv[2]); if(places <= 0 || pass <= 0){ printf("Введены неположительные аргументы\n"); return -1; } printf("Количество мест в корабле: %d\nКоличество отдыхающих на пляже: %d\n", places, pass); //struct sembuf sem = { 0, 0, 0 }; int boatid = 0; boatid = semget(IPC_PRIVATE, 2, IPC_CREAT | 0666); int trapid = 0; trapid = semget(IPC_PRIVATE, 2, IPC_CREAT | 0666); int people = 0; people = semget(IPC_PRIVATE, 1, IPC_CREAT | 0666); if (places > pass) places = pass; mysemop(people, 0, pass); int PassPid = 0; int TitanicPid = fork(); if (!TitanicPid) Titanic(boatid, trapid, places, people); int i = 0; for (; i < pass; i++) { PassPid = fork(); if(PassPid < 0){ perror("Fork failed"); semctl(boatid, 2, IPC_RMID); semctl(trapid, 2, IPC_RMID); semctl(people, 1, IPC_RMID); exit(-1); } if (!PassPid) { passenger(boatid, trapid, people); } } waitpid(TitanicPid, 0, 0); semctl(boatid, 2, IPC_RMID); semctl(trapid, 2, IPC_RMID); for (i = 0; i < pass; i++) wait(0); printf("Пляж закрылся. Люди разошлись\n"); semctl(people, 1, IPC_RMID); return 0; }
int main(int argc, const char * argv[]) { //srand((unsigned int)(time(NULL))); Plane p; Airport air("John F. Kennedy Airport", "New York", 3); std::cout << "Welcome to " << air.getName() << ", " << air.getLocation() << ". \n\nWe currently fly to the following cities:\n"; for(int i = 0; i < air.getDestinations().size(); i++) std::cout << air.getDestinations().at(i) << ", "; std::cout << std::endl;std::cout << std::endl; air.destinationFlights(); std::cout << std::endl; Passenger passenger("Oyedotun","Oyesanmi", "Paris", SeatType::BUSINESS_CLASS); Booking book(passenger); book.seatAvailability(passenger, air);std::cout << std::endl; return 0; }
void TrafficMap::debug() { #if 0 int startCity, startTime, destCity; while (cin >> startCity >> startTime >> destCity) { int destTime(minCostArriveTime[startCity][startTime][destCity]); cout << "minCost : " << minCost[startCity][startTime][destCity][destTime] << endl; cout << "passCities: "; for (int i(0); i != CITY_NUM; ++i) if (minCostPass[startCity][startTime][destCity][destTime] & (1 << i)) cout << cityNoToName[i] << " "; cout << "\n"; vector<int> revPath; int passCity(destCity), passTime(destTime); do { revPath.push_back(minCostPrv[startCity][startTime][passCity][passTime]); passCity = edges[revPath.back()].depart.city; passTime = edges[revPath.back()].depart.time; } while (!(passCity == startCity && passTime == startTime)); for (auto it = revPath.rbegin(); it != revPath.rend(); ++it) cout << edges[*it] << endl; } #elif 1 ofstream ofs("F:/debug.txt"); /* Passenger passenger; passenger.demand.startCity = "Xi'an"; passenger.demand.destCity = "Shijiazhuang"; for (const string& s : {"Changchun", "Guangzhou", "Chengdu", "Shanghai", "Changsha", "Chongqing", "Nanjing"}) passenger.demand.passCities.push_back(s); passenger.demand.startTime = 12, passenger.demand.strategy = MIN_COST; */ Passenger passenger(passengers.at(passengers.size() - 1) ); clock_t start = clock(); vector<string>::iterator it; for (it = passenger.demand.passCities.begin(); it != passenger.demand.passCities.end(); it ++) { string tmp(*it); qDebug("%s",tmp.c_str()); } //getStrategy(passengers.at(passengers.size() - 1)); //restoreEdge(); // for (int i = 0; i <= 10; i++) // passengers[passengers.size() - 1].status.revPath.push_back(i + 250); clock_t stop = clock(); qDebug( "stragtegy got in %d ms\n", stop - start); ofs.close(); #endif // 1 }