제출 #72195

#제출 시각아이디문제언어결과실행 시간메모리
72195김동현보다 잘함 (#118)마법 다우징 (FXCUP3_magic)C++17
100 / 100
3 ms376 KiB
#include "dowsing.h"
#include<bits/stdc++.h>

using namespace std;

int mini(int a, int b) {
    int arr[3] = {1,1,1};
    arr[min(a,2)] = 0; arr[min(b,2)] = 0;
    for (int i=0;i<3;i++)if (arr[i]) return i;
    return 0;
}

void chk(int c, int d) {
    if (c==d) Report(c+1,d+1);
    else if (Detect(c+1,mini(c,d)+1)) Report(c+1,d+1);
    else Report(d+1,c+1);
}

void rchk(int c, int d) {
    if (c==d) Report(c+1,d+1);
    else if (Detect(c+1,mini(c,d)+1)) Report(c+1,c+1);
    else Report(d+1,d+1);
}

void FindTreasure(int N) {
    int i, c = -1, d = -1;
    for (i=0;i<N;i++){
        if (Detect(i+1,i+1)) {
            if (c<0) c = i;
            else d = i;
        }
    }
    if (c>=0) {
        chk(c,d);
        return;
    }
    for (i=0;i<(N-1)/2;i++) {
        if (Detect(i+1,N-i)) {
            rchk(i,N-1-i);
            return;
        }
    }
    rchk((N-1)/2,N-1-(N-1)/2);
}
#Verdict Execution timeMemoryGrader output
Fetching results...