B. Game with string(cf)STL:stack

版权声明:转载于[email protected]的博客 https://blog.csdn.net/nuoyanli/article/details/86605627

time limit per test

1 second

memory limit per test

256 megabytes

input

standard input

output

standard output

Two people are playing a game with a string ss, consisting of lowercase latin letters.

On a player's turn, he should choose two consecutive equal letters in the string and delete them.

For example, if the string is equal to "xaax" than there is only one possible turn: delete "aa", so the string will become "xx". A player not able to make a turn loses.

Your task is to determine which player will win if both play optimally.

Input

The only line contains the string ss, consisting of lowercase latin letters (1≤|s|≤1000001≤|s|≤100000), where |s||s| means the length of a string ss.

Output

If the first player wins, print "Yes". If the second player wins, print "No".

Examples

input

abacaba

output

No

input

iiq

output

Copy

Yes

input

abba

output

No

Note

In the first example the first player is unable to make a turn, so he loses.

In the second example first player turns the string into "q", then second player is unable to move, so he loses.

#include <bits/stdc++.h>
using namespace std;
#define ll long long int
int main()
{
    string str;
    stack<char>s;
    cin>>str;
    int num=0;
    for(int i=0;i<str.length();i++)
    {
        if(!s.empty()&&str[i]==s.top())//一定要先判空
        {
            num++;
            s.pop();
        }
        else
            s.push(str[i]);
    }
        if(num&1)
        cout<<"Yes"<<endl;
        else
        cout<<"No"<<endl;
    return 0;
}

猜你喜欢

转载自blog.csdn.net/nuoyanli/article/details/86605627