답안 #758439

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
758439 2023-06-14T15:50:14 Z Andrey 커다란 상품 (IOI17_prize) C++14
0 / 100
6 ms 296 KB
#include "prize.h"
#include<bits/stdc++.h>
using namespace std;

int find_best(int n) {
	int y = 0,l,r,m,x,big = 0,z;
	for(int i = 0; i*i < n; i++) {
        vector<int> a = ask(i);
        if(a[0] == 0 && a[1] == 0) {
            return i;
        }
        if(a[0]+a[1]) {
            big = a[0]+a[1];
            y = i+1;
        }
	}
	while(y < n) {
        l = y;
        r = n-1;
        vector<int> a = ask(y);
        x = a[0];
        z = a[1];
        if(x+z != big) {
            if(a[0] == 0 && a[1] == 0) {
                return y;
            }
            y++;
            continue;
        }
        while(l < r) {
            m = (l+r+1)/2;
            a = ask(m);
            if(a[0] == x && a[1] == z) {
                l = m;
            }
            else {
                r = m-1;
            }
        }
        a = ask(l+1);
        if(a[0] == l+1 && a[1] == 0) {
            return l+1;
        }
        y = l+2;
	}
}

Compilation message

prize.cpp: In function 'int find_best(int)':
prize.cpp:46:1: warning: control reaches end of non-void function [-Wreturn-type]
   46 | }
      | ^
# 결과 실행 시간 메모리 Grader output
1 Incorrect 6 ms 292 KB Integer 200000 violates the range [0, 199999]
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 4 ms 296 KB Integer 200000 violates the range [0, 199999]
2 Halted 0 ms 0 KB -