제출 #7567

#제출 시각아이디문제언어결과실행 시간메모리
7567gs13068행성 탐사 (GA8_planet)C++98
100 / 100
992 ms1756 KiB
#include "planet.h"
#include <algorithm>

using namespace std;

int calls;

void my_paint(int r,int c)
{
  paint((r%2222+2222)%2222,(c%2222+2222)%2222);
}

int my_row(int r)
{
  calls++;
  return count_row((r%2222+2222)%2222);
}

int my_col(int c)
{
  calls++;
  return count_col((c%2222+2222)%2222);
}

void wait()
{
  calls++;
  count_row(0);
}

void my_report(int r,int c)
{
  report((r%2222+2222)%2222,(c%2222+2222)%2222);
}

void ainta()
{
	int i,j,k;
for(i=0;i<63;i++)my_paint(-i,-i);
for(j=0;j<8;j++)for(k=0;k<j;k++)
{
  my_paint(-j,-i);
  i++;
}
for(j=0;j<5;j++)for(k=0;k<j;k++)my_paint(k+2,-j);
}

void sangsoo()
{
  calls = 0;
int x,y;
int l,r,mid;

for(x=0;x+min(calls,63)<2222;x+=min(calls,63))if(my_row(x))break;
for(l=0,r=min(calls,63)-1;r-l>8;my_row(x+mid)?l=mid:r=mid-1)
  mid=(l+r+1)/2;
x+=l;

for(y=0;y+min(calls,91)<2222;y+=min(calls,91))if(my_col(y))break;
for(l=0,r=min(calls,91)-1;r-l>5;my_col(y+mid)?l=mid:r=mid-1)
  mid=(l+r+1)/2;
y+=l;

while(calls<99)wait();
x+=my_row(x+1);
y+=my_col(y+1);

my_report(x,y);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...