Cod sursa(job #2903208)

Utilizator 4N70N1U5Antonio Nitoi 4N70N1U5 Data 17 mai 2022 11:31:15
Problema Order Scor 55
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <fstream>

using namespace std;

ifstream fin("order.in");
ofstream fout("order.out");

struct node
{
    int poz;
    node* next;
    node* prev;
};

void appendNode(node** head_ref, int poz, bool last)
{
    node* new_node = new node;

    new_node->poz = poz;

    node* last_node = (*head_ref)->prev;

    new_node->next = (*head_ref);

    new_node->prev = last_node;
    
    last_node->next = new_node;

    (*head_ref)->prev = new_node;
}

int main()
{
    int n;

    fin >> n;

    node* head = new node;

    head->poz = 1;
    head->next = head;
    head->prev = head;

    for (int i = 2; i <= n; i++)
    {
        appendNode(&head, i, (i == n) ? true : false);
    }

    for (int i = 1; i <= n; i++)
    {
        for (int j = 1; j <= i; j++)
        {
            head = head->next;
        }
        
        fout << head->poz << ' ';

        head->prev->next = head->next;

        head->next->prev = head->prev;
    }
}