C. Substring Game in the Lesson

传送门

C. Substring Game in the Lesson

time limit per test
2 seconds
memory limit per test
256 mebibytes
input
standard input
output
standard output

Mike and Ann are sitting in the classroom. The lesson is boring, so they decided to play an interesting game. Fortunately, all they need to play this game is a string s and a number k (0≤k<|s|).
At the beginning of the game, players are given a substring of ss with left border l and right border r, both equal to k (i.e. initially l=r=k). Then players start to make moves one by one, according to the following rules: A player chooses l′ and r′ so that l′≤l, r′≥r and s[l′,r′] is lexicographically less than s[l,r]. Then the player changes l and r in this way: l:=l′, r:=r′. Ann moves first. The player, that can’t make a move loses.Recall that a substring s[l,r] (l≤r) of a string s is a continuous segment of letters from s that starts at position l and ends at position r. For example, “ehn” is a substring (s[3,5]) of “aaaehnsvz” and “ahz” is not.Mike and Ann were playing so enthusiastically that they did not notice the teacher approached them. Surprisingly, the teacher didn’t scold them, instead of that he said, that he can figure out the winner of the game before it starts, even if he knows only s and k.Unfortunately, Mike and Ann are not so keen in the game theory, so they ask you to write a program, that takes s and determines the winner for all possible k.

Input
The first line of the input contains a single string s (1≤|s|≤5⋅10^{5}) consisting of lowercase English letters.

Output
Print |s| lines.In the line i write the name of the winner (print Mike or Ann) in the game with string s and k=i, if both play optimally.

题意:输出一串字符,后面字符比前面字符小则输出Mike并更新最小字符,否则输出Ann。

思路:提前定义最小字符为"z",后遍历一遍字符数组按题目要求输出即可。

AC代码

#include<bits/stdc++.h>
using namespace std;
const int manx=1e5+5;
int main()
{
    string s;
    cin>>s;
    char minn='z';
    for(int i=0;i<s.size();i++)
    {
        if(s[i]<=minn) cout<<"Mike"<<endl;
        else cout<<"Ann"<<endl;
        minn=min(minn,s[i]);
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/m0_46669450/article/details/107930877