제출 #40599

#제출 시각아이디문제언어결과실행 시간메모리
40599ljk0411jgTreasure (different grader from official contest) (CEOI13_treasure2)C++14
68 / 100
2 ms660 KiB
#include "treasure.h"
typedef struct _data
{
	int x, y;
}Data;
Data Point[10005];
int N, idx;

void input(int sx, int sy, int ex, int ey)
{
	for (int i = sy; i <= ey; i++)
	{
		for (int j = sx; j <= ex; j++)
		{
			Point[idx].x = j;
			Point[idx++].y = i;
		}
	}
}

int func(int sx, int sy, int ex, int ey, int t, int flag)
{
	int count, x, y, ret = 0;
	x = ex - sx + 1;
	y = ey - sy + 1;
	if (flag == 0)
	{
		count = countTreasure(sx, sy, ex, ey);
	}
	else
	{
		count = t;
	}
	if (x * y == count)
	{
		input(sx, sy, ex, ey);
		return count;
	}
	else if (count == 0)
	{
		return 0;
	}
	if (x > y)
	{
		int mid;
		mid = (sx + ex) / 2;
		ret = func(sx, sy, mid, ey, t, 0);
		if (ret == count)
		{
			return ret;
		}
		ret += func(mid + 1, sy, ex, ey, count - ret, 1);
	}
	else
	{
		int mid;
		mid = (sy + ey) / 2;
		ret = func(sx, sy, ex, mid, t, 0);
		if (ret == count)
		{
			return ret;
		}
		ret += func(sx, mid + 1, ex, ey, count - ret, 1);
	}
	return ret;
}

void findTreasure(int N) {
	idx = 0;
	func(1, 1, N, N, 1, 0);
	for (int i = 0; i < idx; i++)
	{
		Report(Point[i].x, Point[i].y);
	}
}

컴파일 시 표준 에러 (stderr) 메시지

grader.c: In function 'int main()':
grader.c:63:34: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         my_assert(strlen(A[i]+1) == N, "each line of the map must contain N zeroes or ones (before loop)");
                                  ^
#Verdict Execution timeMemoryGrader output
Fetching results...