Cod sursa(job #2135987)

Utilizator inquisitorAnders inquisitor Data 19 februarie 2018 15:48:32
Problema Sortare prin comparare Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 1.17 kb
#include <bits/stdc++.h>

int N, x; std :: vector<int> v;

const int bufferSize = 7500000;

int pos = 0; char buffer[bufferSize];

void inline read(int &num)
{
    num = 0;

    while(buffer[pos] < 48 | buffer[pos] > 57)
    {
        if(++pos == bufferSize)
        {
           fread(buffer, 1, bufferSize, stdin);

           pos = 0;
        }
    }
    while(buffer[pos] > 47 & buffer[pos] < 58)
    {
        num = num * 10 + buffer[pos] - 48;

        if(++pos == bufferSize)
        {
           fread(buffer, 1, bufferSize, stdin);

           pos = 0;
        }
    }
}

char *p = buffer;

void inline itoa(int x)
{
    int digits = 1;

    for(int i = x; i /= 10; ++digits);

    for(int i = digits - 1; ~i; --i)
    {
        *(p + i) = x % 10 + 48, x /= 10;
    }

    p += digits; *p++ = 32;
}

int main()
{
    freopen("algsort.in", "r", stdin);
    freopen("algsort.out", "w", stdout);

    read(N);

    for(int i = 1; i <= N; i++)
    {
        read(x); v.push_back(x);
    }

    sort(v.begin(), v.end());

    for(int i : v)
    {
        itoa(i);
    }

    *p = 0;

    puts(buffer);

    return 0;
}