最高得分:60
| Score | Source Code | Other Informations |
|---|---|---|
| 0 | code[0] | No score |
| 20 | code[1] | 2~5 TLE |
| 40 | code[2] | Last 3 are MLE/323 +− 1.5ms |
| 60 | code[3] | Used rand. MLE chance has been reduced. |
| Code JSON |
Code: [
#include <iostream>
using namespace std;
int getMin(int a[], int len) {
int min = 2147483647;
for (int i = 0; i < len; i++) {
if ((min > a[i]) && (a[i] != -2147483648)) {
min = i;
}
}
return min;
}
int main() {
int n;
cin >> n;
int a[n],b[n];
for (int i = 0; i < n; i++) {
cin >> a[i];
b[i] = 0;
}
int cnt = 0;
for (int i = 0; i < n; i++) {
int min = getMin(a, n);
b[cnt] = a[min];
a[min] = -2147483648;
cnt++;
break;
}
for (int i = 0; i < n; i++) {
cout << b[i] << ' ';
}
return 0;
}
,
#include <iostream>
using namespace std;
int getMin_index(int a[], int len, int start) {
int min_index = start;
for (int i = start + 1; i < len; i++) {
if (a[min_index] > a[i]) {
min_index = i;
}
}
return min_index;
}
int main() {
int n;
cin >> n;
int a[n];
for (int i = 0; i < n; i++) {
cin >> a[i];
}
for (int i = 0; i < n - 1; i++) {
int min_index = getMin_index(a, n, i);
int temp = a[min_index];
a[min_index] = a[i];
a[i] = temp;
}
for (int i = 0; i < n; i++) {
cout << a[i] << ' ';
}
return 0;
}
,
#include <iostream>
#include <queue>
using namespace std;
//Ascend
void quicksort(int a[], int len) {
if (len == 0 || len == 1) return;
int mid = a[0];
queue <int> q1;
queue <int> q2;
for (int i = 1; i < len; i++) {
if (a[i] < mid) q1.push(a[i]);
else q2.push(a[i]);
}
int len1 = q1.size();
int len2 = q2.size();
int l[len1], r[len2];
for (int i = 0; i < len1; i++) {
l[i] = q1.front();
q1.pop();
}
for (int i = 0; i < len2; i++) {
r[i] = q2.front();
q2.pop();
}
quicksort(l, len1);
quicksort(r, len2);
int i = 0;
for (; i < len1; i++) {
a[i] = l[i];
}
a[i] = mid;
i++;
for (int j = 0; i < len; i++, j++) {
a[i] = r[j];
}
}
int main() {
int n;
cin >> n;
int a[n];
for (int i = 0; i < n; i++) cin >> a[i];
quicksort(a, n);
for (int i = 0; i < n; i++) {
cout << a[i] << ' ';
}
return 0;
}
,
#include <iostream>
#include <queue>
#include <cstdlib>
#include <ctime>
using namespace std;
//Ascend
void quicksort(int a[], int len) {
if (len == 0 || len == 1) return;
srand(time(0));
int pos = rand() % len;
int mid = a[pos];
queue <int> q1;
queue <int> q2;
for (int i = 0; i < len; i++) {
if (i == pos) continue;
if (a[i] < mid) q1.push(a[i]);
else q2.push(a[i]);
}
int len1 = q1.size();
int len2 = q2.size();
int l[len1], r[len2];
for (int i = 0; i < len1; i++) {
l[i] = q1.front();
q1.pop();
}
for (int i = 0; i < len2; i++) {
r[i] = q2.front();
q2.pop();
}
quicksort(l, len1);
quicksort(r, len2);
int i = 0;
for (; i < len1; i++) {
a[i] = l[i];
}
a[i] = mid;
i++;
for (int j = 0; i < len; i++, j++) {
a[i] = r[j];
}
}
int main() {
int n;
cin >> n;
int a[n];
for (int i = 0; i < n; i++) cin >> a[i];
quicksort(a, n);
for (int i = 0; i < n; i++) {
cout << a[i] << ' ';
}
return 0;
}
]
rand can only generate number based on time, so I use a new generator.
new generator. 40-score chance reduced.
#include <iostream>
#include <queue>
#include <cstdlib>
#include <ctime>
using namespace std;
long long new_rand() {
srand(time(0));
int x = rand();
srand(time(0));
int y = rand();
return x * 32767 + y;
}
//Ascend
void quicksort(int a[], int len) {
if (len == 0 || len == 1) return;
srand(time(0));
int pos = new_rand() % len;
int mid = a[pos];
queue <int> q1;
queue <int> q2;
for (int i = 0; i < len; i++) {
if (i == pos) continue;
if (a[i] < mid) q1.push(a[i]);
else q2.push(a[i]);
}
int len1 = q1.size();
int len2 = q2.size();
int l[len1], r[len2];
for (int i = 0; i < len1; i++) {
l[i] = q1.front();
q1.pop();
}
for (int i = 0; i < len2; i++) {
r[i] = q2.front();
q2.pop();
}
quicksort(l, len1);
quicksort(r, len2);
int i = 0;
for (; i < len1; i++) {
a[i] = l[i];
}
a[i] = mid;
i++;
for (int j = 0; i < len; i++, j++) {
a[i] = r[j];
}
}
int main() {
int n;
cin >> n;
int a[n];
for (int i = 0; i < n; i++) cin >> a[i];
quicksort(a, n);
for (int i = 0; i < n; i++) {
cout << a[i] << ' ';
}
return 0;
}
Please fix my code. QwQ lol:)
troll P:)