A. BowWow and the Timetable
In the city of Saint Petersburg, a day lasts for 21002100 minutes. From the main station of Saint Petersburg, a train departs after 11 minute, 44minutes, 1616 minutes, and so on; in other words, the train departs at time 4k4k for each integer k≥0k≥0. Team BowWow has arrived at the station at the time ss and it is trying to count how many trains have they missed; in other words, the number of trains that have departed strictly before time ss. For example if s=20s=20, then they missed trains which have departed at 11, 44 and 1616. As you are the only one who knows the time, help them!
Note that the number ss will be given you in a binary representation without leading zeroes.
Input
The first line contains a single binary number ss (0≤s<21000≤s<2100) without leading zeroes.
Output
Output a single number — the number of trains which have departed strictly before the time ss.
Examples
input
100000000
output
4
input
101
output
2
input
10100
output
3
代码:
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define inf 0x3f3f3f3f
#define mem(a,b) memset(a,b,sizeof(a))
int main()
{
string a;
int n,i,flag=0;
cin>>a;
n=a.length();
for(i=1;i<n;i++)
if(a[i]=='1')
flag=1;
if(flag)
{
cout<<(n-1)/2+1<<endl;
}
else
{
if(n%2==0)
cout<<(n-1)/2+1<<endl;
else
cout<<(n-1)/2<<endl;
}
return 0;
}