답안 #71993

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
71993 2018-08-26T04:32:08 Z (#2175, xdoju, kazel, pps789) 마법 다우징 (FXCUP3_magic) C++17
100 / 100
3 ms 376 KB
#include"dowsing.h"
#include<vector>
using namespace std;

void FindTreasure(int N){
    vector<int> v(N+1);

    for(int i=1;i<N;i++) v[i] = Detect(i,i);
    int dc = 0;
    for(int i=1;i<N;i++) if(v[i]) dc++;
    if(dc==1) v[N] = 1, dc++;

    if(dc==2){
        int x,y;
        for(int i=1;i<=N;i++) if(v[i]){
            x=i; break;
        }
        for(int i=x+1;i<=N;i++) if(v[i]){
            y=i; break;
        }

        int other;
        for(int i=1;i<=N;i++) if(i!=x&&i!=y) other=i;
        if(Detect(x,other)) Report(x,y);
        else Report(y,x);
        return;
    }
    else{
        for(int i=1;i<N;i+=2){
            if(Detect(i,i+1)){
                int other = -1;
                for(int j=1;j<=N;j++) if(j!=i&&j!=i+1) other=j;
                if(Detect(i,other)) Report(i,i);
                else Report(i+1,i+1);
                return;
            }
        }

        Report(N,N);
    }
}

Compilation message

dowsing.cpp: In function 'void FindTreasure(int)':
dowsing.cpp:14:13: warning: 'x' may be used uninitialized in this function [-Wmaybe-uninitialized]
         int x,y;
             ^
dowsing.cpp:24:18: warning: 'other' may be used uninitialized in this function [-Wmaybe-uninitialized]
         if(Detect(x,other)) Report(x,y);
            ~~~~~~^~~~~~~~~
dowsing.cpp:24:35: warning: 'y' may be used uninitialized in this function [-Wmaybe-uninitialized]
         if(Detect(x,other)) Report(x,y);
                             ~~~~~~^~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 256 KB Correct : C = 4
2 Correct 2 ms 256 KB Correct : C = 3
3 Correct 3 ms 348 KB Correct : C = 148
4 Correct 3 ms 376 KB Correct : C = 99
5 Correct 3 ms 376 KB Correct : C = 150
6 Correct 3 ms 376 KB Correct : C = 100
7 Correct 3 ms 376 KB Correct : C = 148
8 Correct 3 ms 348 KB Correct : C = 150
9 Correct 3 ms 376 KB Correct : C = 150
10 Correct 3 ms 376 KB Correct : C = 150
11 Correct 3 ms 376 KB Correct : C = 149
12 Correct 3 ms 376 KB Correct : C = 148