Решение задачи "Минимальное двоичное число" с Codeforces

Без пояснения   Просмотров: 11


Строка называется правильной тогда и только тогда, когда она состоит из символов "0" и "1", а также в ней отсутствуют избыточные лидирующие нули. Вот несколько примеров: «0», «10», «1001».

Задана правильная строка s.

Над этой строкой можно проводить два типа операций:

поменять местами два соседних символа (например, «101» «110»);
заменить «11» на «1» (например, « 110» « 10»).
Определим val(s), как такое число, что s является его двоичным представлением.

Правильная строка a меньше другой правильной строки b тогда и только тогда, когда val(a) < val(b).

Ваша задача — найти минимальную правильную строку, которую можно получить из заданной, применив некоторую последовательность выше описанных операций. Операции можно использовать в любом порядке любое количество раз (или не использовать совсем).

Код

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n;
	cin>>n;
	string s;
	cin>>s;
	for(int i=0;i<n;i++){
    	if(i==0 || s[i]=='0'){
        	cout<<s[i];
    	}
}
}

         

 Администратор Photo Автор: Администратор


Отправить решение задачи
Чтобы отправить решение вам нужно войти в систему или зарегистрироваться

Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться