답안 #1082311

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1082311 2024-08-31T06:41:41 Z MMihalev 커다란 상품 (IOI17_prize) C++14
0 / 100
1 ms 344 KB
#include<iostream>
#include<vector>
#include<algorithm>
#include<cmath>
#include "prize.h"
using namespace std;
const int MAX_N=2e5+4;
int asked[MAX_N][2];
bool used[MAX_N];
pair<int,int>query(int pos)
{
    if(used[pos])return {asked[pos][0],asked[pos][1]};

    used[pos]=1;
    auto ve=ask(pos);
    asked[pos][0]=ve[0];
    asked[pos][1]=ve[1];
    return {ve[0],ve[1]};
}
int find_best(int n)
{
    long long N=n;
    int prevpos=-1;
    while(1)
    {
        prevpos++;
        if(prevpos>=n)break;
        auto cur=query(prevpos);
        long long all=cur.first+cur.second;
        if((N-all)*(N-all)>=N)
        {
            int l=prevpos,r=n-1;
            while(l<=r)
            {
                int mid=(l+r)/2;
                auto cur2=query(mid);
                if(cur2.first==cur.first && cur2.second==cur.second)
                {
                    prevpos=mid;
                    l=mid+1;
                }
                else r=mid-1;
            }
        }
        else
        {
            if(all==0)return prevpos;
        }
    }

}

Compilation message

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