oj1029 : 존 게임 (퍼즐)

항목 요구 사항
존은 마이크 놀이라는 재미있는 게임을 발명했다.
이 게임은 숫자의 행 아래로 존 쓰기, 그래서이다. 행이기 때문에, 물론 약간 포괄적으로.
존 및 마이크는 머리 또는 꼬리 숫자의 행의 수를 복용 할 수 있습니다.
누가 승리 누구보다 마지막 번호를 받아. 두 사람은만큼, 먼저 승리를 취합니다.
이제 여러분의 작업은 항상 최선의 결정 (두 사람의 IQ는 ...... 매우 높다), 만드는 두 사람의 경우에 결정하는 것입니다
그것의 최종 승리를 이길 수 있습니까?
입력
첫번째 라인 숫자 K (K <= 10), 테스트 데이터의 표현 K 세트.
k 개의 테스트 데이터를 설정한다.
테스트 데이터의 각 세트로 제 라인 만 짝수 N (0 <= 100000 <N )
번째 행은 숫자 1 존, 마이크 0은 최초 액세스를 나타내는 상기 제 1 액세스를 나타내고있다.
세번째 행 수 (n)를 갖는다 연속 번호는 존 주어진다. N이 숫자의 절대 값은 1E6을 초과하지 않습니다.
아웃풋의
각 그룹에 대한 테스트 데이터 출력 라인은
두 사람의 경우 대표 항상 최선의 결정 만들
궁극적 인 승자의 예 : 이름, "존"또는 "마이크를" (인용 부호없는 출력).
입력 샘플
원시
2
2
. 1
. 1 3
2
0
. 1 3
샘플 출력
원시

마이크
홀수 공동 연속 번호 (S1)와 짝수과 (S2)를 분리, 첫 번째 사람은 GET S1 또는 S2,이 시점에서 선택이 많은 수에서 이길 수있는 것을 선택할 수 있습니다. 즉, 누가 누가이기 든 손해야한다.

#include<stdio.h>
#include<string.h>
#include<iostream>
#include<algorithm>
#include<queue>
#include<math.h>
#include<stdio.h>
#include<string.h>
using namespace std;
int str[100005];
int main()
{
    int n, num, sign, i;
    cin >> n;
    while (n--)
    {
        cin>>num>>sign;
        for (i = 0; i < num; i++)
            cin>>str[i];
        if (sign == 1)
            printf("john\n");
        else
            printf("mike\n");
    }
    return 0;
}
게시 38 개 원래 기사 · 원의 찬양 (27) · 전망 3184

추천

출처blog.csdn.net/qq_45891413/article/details/104909492