Блог пользователя Siuuuuu67

Автор Siuuuuu67, история, 92 минуты назад, По-английски

Дан список целых чисел. Требуется “сжать” его, переместив все ненулевые элементы в левую часть списка, не меняя их порядок, а все нули — в правую часть. Порядок ненулевых элементов изменять нельзя, дополнительный список использовать нельзя, задачу нужно выполнить за один проход по списку. Распечатайте полученный список.

Входные данные Вводится список чисел. Все числа списка находятся на одной строке.

Выходные данные Выведите ответ на задачу.

Примеры Входные данные 4 0 5 0 3 0 0 5 Выходные данные 4 5 3 5 0 0 0 0

Помогите пожалуйста, я пытался через питон но мне не хватало времени.

  • Проголосовать: нравится
  • 0
  • Проголосовать: не нравится

»
71 минуту назад, скрыть # |
Rev. 3  
Проголосовать: нравится 0 Проголосовать: не нравится

Привет, держи

#include<bits/stdc++.h>
using namespace std;
int main(){

  int n, k = -1;
  cin >> n;
  vector < int > a(n);
  for(int i = 0; i < n; i++){
    cin >> a[i];
    if(a[i] == 0 && k == -1) k = i;
    if(a[i] != 0 && k != -1) a[k] = a[i], a[i] = 0, k++;
  }

  for(int i = 0; i < n; i++) cout << a[i] << ' ';
}

Или на python

k = -1
a = list(map(int, input().split(' ')))
for i in range(len(a)):
    if a[i] == 0 and k == -1:
        k = i
    
    if a[i] != 0 and k != -1:
        a[k] = a[i]
        a[i] = 0
        k += 1

print(a)
»
38 минут назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Почему люди стали юзать кф как ГПТ?