Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Задача на c++ на обратную перестановку

Sweet Ученик (132), закрыт 1 месяц назад
Лучший ответ
Николай Веселуха Высший разум (368748) 1 месяц назад
 #include <algorithm> 
#include <iostream>
#include <vector>

using namespace std;

class Guest {
public:
Guest() : number(0), place(0) {}
static void reset() {
next = 0;
}
private:
inline static unsigned next = 0;
unsigned number;
unsigned place;
friend istream& operator>>(istream& inp, Guest& guest) {
inp >> guest.number;
guest.place = ++guest.next;
return inp;
}
friend ostream& operator<<(ostream& out, const Guest& guest) {
return out << guest.place;
}
friend bool operator<(const Guest& left, const Guest& right) {
return left.number < right.number;
}
};

class Guests {
public:
Guests(const size_t count) {
guests.resize(count);
Guest::reset();
}
void order_by_place() {
sort(begin(guests), end(guests));
}
private:
vector<Guest> guests;
friend istream& operator>>(istream& inp, Guests& came) {
for (auto& guest : came.guests) inp >> guest;
return inp;
}
friend ostream& operator<<(ostream& out, const Guests& came) {
for (const auto& guest : came.guests) out << guest << ' ';
return out.put('\n');
}
};

int main() {
size_t n;
cin >> n;
Guests guests(n);
cin >> guests;
guests.order_by_place();
cout << guests;
}
Остальные ответы
Павел Михаловский Просветленный (36124) 1 месяц назад
 #include <iostream> 

using namespace std;
int main()
{
int n;
int* places;
cin >> n;
places = new int[n];
int currentGuest;
for (int i = 1; i <= n; i++) {
cin >> currentGuest;
places[currentGuest-1] = i;
}
for (int i = 0; i < n; i++) {
cout << places[i] << " ";
}
return 0;
}
Ввод/Вывод поправишь под платформу
SweetУченик (132) 1 месяц назад
А можешь пояснить,что тут на было сделать,Я даже задание не очень понял
Павел Михаловский Просветленный (36124) Sweet, тебе дали задание, понять, где какой гость сидит. Тебе даётся вначале количество гостей, а потом места, на которые гость сел. Ну и чтобы решить, тебе просто надо номер гостя вписать в выходной массив. Я сразу выделил память и сразу стал записывать, например первый гость сел на 11 место, значит в 11 ячейку записываем 1 гостя
Похожие вопросы