torus711 のアレ

主に競技プログラミングの問題について書きます

Codeforces 157, Division 2, C : Little Elephant and Bits

概要

整数の二進数表現を表す文字列が与えられる。
その文字列から一文字を削除し得られる整数を最大化し、それを表す二進数表現を出力せよ。

解法

一番先頭に近い 0 を消去します。
存在しない場合(=全て 1 の場合)はどこでもいいから削除します。

コード

int main()
{
	cin.tie( 0 );
	ios::sync_with_stdio( false );

	string a;
	cin >> a;

	int pos = a.find( '0' );

	if ( pos == string::npos )
	{
		a.erase( 0, 1 );
	}
	else
	{
		a.erase( pos, 1 );
	}

	cout << a << endl;

	return 0;
}