Pagini recente » Cod sursa (job #2487929) | Cod sursa (job #57897) | Cod sursa (job #3244433) | Cod sursa (job #1123432) | Cod sursa (job #1316095)
#include <stdio.h>
#define MAXN 20000000
int v[MAXN];
void qs(int st, int dr){
int i = st, j = dr, piv = v[(st + dr) / 2], aux;
while(i <= j){
while(v[i] < piv)
i++;
while(v[j] > piv)
j--;
if(i <= j){
aux = v[i];
v[i] = v[j];
v[j] = aux;
i++;
j--;
}
}
if(st < j)
qs(st, j);
if(i < dr)
qs(i, dr);
}
int main(){
FILE *in = fopen("interclasari.in", "r");
int t, n = 0, x, i, j = 0;
fscanf(in, "%d", &t);
for(i = 0; i < t; i++){
fscanf(in, "%d", &x);
n += x;
for(; j < n; j++){
fscanf(in, "%d", &v[j]);
}
}
fclose(in);
qs(0, n - 1);
FILE *out = fopen("interclasari.out", "w");
fprintf(out, "%d\n", n);
for(i = 0; i < n; i++){
fprintf(out, "%d ", v[i]);
}
fclose(out);
return 0;
}