Cod sursa(job #1290816)

Utilizator tziplea_stefanTiplea Stefan tziplea_stefan Data 11 decembrie 2014 19:48:01
Problema Radix Sort Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb

#include <fstream>
#include <iostream>
#include <queue>

using namespace std;

ifstream fi("radixsort.in");
ofstream fo("radixsort.out");
int n, i, iv, x[10000001], p10, p, a, b, c;
vector<int> v[10];

int main() {
  fi >> n >> a >> b >> c;
  x[1] = b;
  for (i = 2; i <= n; i++)
    x[i] = (a * x[i-1] + b) % c;
  p10 = 1;
  for (p = 1; p <= 9; p++) {
    for (i = 1; i <= n; i++) {
      c = x[i] / p10 % 10;
      v[c].push_back(x[i]);
    }
    ix = 0;
    for (iv = 0; iv <= 9; iv++) { // Punem elementele in x.
      for (i = 0; i < v[iv].size(); i++) {
        ix++;
        x[ix] = v[iv][i];
      }
      v[iv].clear();
    }
    p10 *= 10;
  }
  for (i = 1; i <= n; i += 10)
    fo << x[i] << ' ';
  return 0;
}