Nu aveti permisiuni pentru a descarca fisierul grader_test7.in
Cod sursa(job #2966036)
| Utilizator | Data | 16 ianuarie 2023 17:59:18 | |
|---|---|---|---|
| Problema | Radix Sort | Scor | 30 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 1.12 kb |
#include <fstream>
#include <vector>
using namespace std;
ifstream f ("radixsort.in");
ofstream g ("radixsort.out");
int n , v[10000005];
vector < int > a[12];
int main() {
int a1 , b , c;
f >> n >> a1 >> b >> c;
v[1] = b;
int maxi = 0;
for (int i = 2 ; i <= n ; i++)
v[i] = (1LL * a1 * v[i - 1] + b) % c , maxi = max (maxi , v[i]);
int divider = 1;
while (divider < maxi)
{
for (int i = 1 ; i <= n ; i++)
{
int u = (v[i] / divider) % 10;
a[u].push_back (v[i]);
}
int k = 0;
for (int i = 0 ; i <= 9 ; i++)
{
for (int j = 0 ;j < a[i].size() ; j++)
{
k++;
v[k] = a[i][j];
}
}
for (int i = 0 ; i <= 9 ; i++)
a[i].clear();
divider = divider * 10;
}
int k = 1;
while (k <= n)
{
g << v[k] <<" ";
k = k + 10;
}
return 0;
}
