Язык — Java
import java.util.Arrays;
public class Znanija {
public static void countingSort(int[] array) {
int min, max;
max = min = array[0];
for (int i = 1; i < array.length; i++) {
if (array[i] < min) {
min = array[i];
}
if (array[i] > max) {
max = array[i];
// создаем массив счетчиков
int[] count = new int[max - min + 1];
// считаем сколько раз встречается каждое число
for (int i = 0; i < array.length; i++) {
// берем нужный счетчик и добавляем к нему +1
count[array[i] - min]++;
int idx = 0;
// пробегаем по всем счетчикам
// count[i] - показывает сколько раз встречается то или иное число
for (int i = 0; i < count.length; i++) {
for (int j = 0; j < count[i]; j++) {
array[idx++] = i + min;
public static void main(String[] args) {
int []arr = {2, 0, 8, 1, 6, 8, 3, 7, 2, 6, 2, 1, 5, 2, 4};
System.out.println("Массив до сортировки:" + "\n" + Arrays.toString(arr));
countingSort(arr);//сортировка
System.out.println("\nМассив после сортировки:" + "\n" + Arrays.toString(arr));
#include <iostream>
#include <vector>
using namespace std;
int main(){
int n;
cin >> n;
vector<int> res;
for(int i = 0; i < n; i++){
int x;
cin >> x;
int x1 = x, x2 = x, cnt = 0;
while(x1 > 0){
cnt++;
x1 /= 10;
if(cnt % 2 == 1){
int xx = 0, u = 0;
while(x2 > 0){
xx += (x2 % 10) * pow(10,u);
u++;
x2 /= 10;
if(x == xx)
res.push_back(i + 1);
for(auto &i : res)
cout << i << " ";
Язык — Java
import java.util.Arrays;
public class Znanija {
public static void countingSort(int[] array) {
int min, max;
max = min = array[0];
for (int i = 1; i < array.length; i++) {
if (array[i] < min) {
min = array[i];
}
if (array[i] > max) {
max = array[i];
}
}
// создаем массив счетчиков
int[] count = new int[max - min + 1];
// считаем сколько раз встречается каждое число
for (int i = 0; i < array.length; i++) {
// берем нужный счетчик и добавляем к нему +1
count[array[i] - min]++;
}
int idx = 0;
// пробегаем по всем счетчикам
// count[i] - показывает сколько раз встречается то или иное число
for (int i = 0; i < count.length; i++) {
for (int j = 0; j < count[i]; j++) {
array[idx++] = i + min;
}
}
}
public static void main(String[] args) {
int []arr = {2, 0, 8, 1, 6, 8, 3, 7, 2, 6, 2, 1, 5, 2, 4};
System.out.println("Массив до сортировки:" + "\n" + Arrays.toString(arr));
countingSort(arr);//сортировка
System.out.println("\nМассив после сортировки:" + "\n" + Arrays.toString(arr));
}
}
#include <iostream>
#include <vector>
using namespace std;
int main(){
int n;
cin >> n;
vector<int> res;
for(int i = 0; i < n; i++){
int x;
cin >> x;
int x1 = x, x2 = x, cnt = 0;
while(x1 > 0){
cnt++;
x1 /= 10;
}
if(cnt % 2 == 1){
int xx = 0, u = 0;
while(x2 > 0){
xx += (x2 % 10) * pow(10,u);
u++;
x2 /= 10;
}
if(x == xx)
res.push_back(i + 1);
}
}
for(auto &i : res)
cout << i << " ";
}