제출 #314099

#제출 시각아이디문제언어결과실행 시간메모리
314099lukameladzeThe Big Prize (IOI17_prize)C++14
90 / 100
112 ms384 KiB
#include "prize.h"
# include <bits/stdc++.h>
 std::vector<int> res;
    int le,l,x1,x2,mx,mid,ri,ans;
int find_best(int n) 
{
    
	for (int i=0; i<=500; i++)
     {
          res=ask(i);
          if (res[0]+res[1]==0)
          {
               return i;
          }
          if (res[0]+res[1]>=mx)
          {
               mx=res[0]+res[1];
               l=i;
               x1=res[0];
               x2=res[1];
          }
     }
 
     while (true)
     {
          le=l+1;
          ri=n-1;
          while (le<=ri)
          {
               mid=(le+ri)/2;
               res=ask(mid);
            if (res[0]+res[1]==0)
            {
              return mid;
			}	
               if (res[0]+res[1]!=mx)
               {
                    ans=mid;
               }
               if (res[0]==x1 && res[0]+res[1]==mx)
               {
                    le=mid+1;
               }
               else
               {
                    ri=mid-1;
               }
          }
          for (int i=ans+1; i<n; i++)
          {
               res=ask(i);
               if (res[0]+res[1]==0)
               {
                    return i;
               }
               if (res[0]+res[1]==mx)
               {
                    l=i;
                    x1=res[0];
                    break;
               }
          }
          
     }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...