Cod sursă (job #160575)

Utilizator avatar rpdstrike Puscasu Felix rpdstrike IP ascuns
Problemă Specsort (lot liceu) Compilator cpp | 0,78 kb
Rundă Arhiva de probleme Status evaluat
Dată 20 oct. 2015 11:41:56 Scor 100
#include <fstream>

using namespace std;

ifstream in("specsort.in");
ofstream out("specsort.out");

const int NMAX = 100000;

int v[NMAX+2];
int p[NMAX+2];
int N;

int main() {
    in >> N;
    for( int i = 1;  i <= N;  ++i ) {
        in >> v[i];
    }
    for( int j = 0;  (1<<j) <= N;  ++j ) {
        int pos = 0;

        for( int i = 1;  i <= N;  ++i ) {
            if( !( v[i] & (1<<j) ) ) {
                p[ ++pos ] = v[i];
            }
        }
        for( int i = 1;  i <= N;  ++i ) {
            if( ( v[i] & (1<<j) ) ) {
                p[ ++pos ] = v[i];
            }
        }

        for( int i = 1;  i <= N;  ++i )  {
            v[i] = p[i];
            out << v[i] << ' ';
        }
        out << '\n';
    }

    return 0;
}