| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 1315854 | Luvidi | 커다란 상품 (IOI17_prize) | C++20 | 23 ms | 408 KiB |
#include "prize.h"
#include <bits/stdc++.h>
using namespace std;
int find_best(int n) {
vector<int> v;
int mx=-1,id;
for(int i=0;i<min(n,500);i++){
auto t=ask(i);
if(t[0]+t[1]>mx){
mx=t[0]+t[1];
id=i;
}
}
for(int i=0;i<id;i++){
v.push_back(i);
}
while(v.size()<mx){
int l=0,r=n-1;
if(!v.empty())l=v.back()+1;
while(l<r){
int m=l+r>>1;
auto t=ask(m);
if(t[0]+t[1]<mx||t[0]>v.size())r=m;
else l=m+1;
}
v.push_back(l);
}
for(int i:v){
auto t=ask(i);
if(t[0]+t[1]==0)return i;
}
return -1;
}
| # | 결과 | 실행 시간 | 메모리 | 채점기 출력 |
|---|---|---|---|---|
| 결과를 불러오는 중입니다… | ||||
| # | 결과 | 실행 시간 | 메모리 | 채점기 출력 |
|---|---|---|---|---|
| 결과를 불러오는 중입니다… | ||||
