Submission #28593

# Submission time Handle Problem Language Result Execution time Memory
28593 2017-07-16T07:46:37 Z Official Fan of ACG(#1221, cseteram, 16silver, pps789) Oriental P.A.D.A.K (FXCUP2_padak) C++14
0 / 1
46 ms 14488 KB
#include <cstdio>
#include <queue>
#include <map>
#include <deque>
#include <tuple>
using namespace std;
typedef pair<int, int> pii;
const int dx[] = { 1, 0, -1, 0 };
const int dy[] = { 0, -1, 0, 1 };

int n, m, k, b, z;
int arr[1024][1024];
queue<pii> que;
deque<int> deq, deq2;
map<int, int> cnt;

void bfs()
{
	while (!que.empty()) {
		int r, c;
		tie(r, c) = que.front();
		que.pop();

		for (int k = 0; k < 4; k++) {
			int nr = r + dy[k], nc = c + dx[k];
			if (nr < 0 || nr >= n || nc < 0 || nc >= m) continue;
			if (arr[nr][nc]) continue;
			que.push({ nr, nc });
			arr[nr][nc] = arr[r][c] + 1;
			deq.push_back(arr[nr][nc]);
			deq2.push_back(arr[nr][nc]);
		}
	}
}

int main()
{
	scanf("%d%d%d%d%d", &n, &m, &k, &b, &z);
	for (int i = 0; i < k; i++) {
		int r, c;
		scanf("%d%d", &r, &c);
		--r, --c;
		que.push({ r, c });
		arr[r][c] = 1;
	}

	bfs();

	int scnt = 0, lcnt = 0, t;

	t = 2;
	while (!deq.empty()) {
		for (int i = 0; i < z; i++) {
			if (deq.empty()) break;
			deq.pop_front();
			lcnt++;
		}
		while (!deq.empty() && deq.front() <= t)
			deq.pop_front();
		++t;
	}

	t = 2;
	while (!deq2.empty()) {
		for (int i = 0; i < z; i++) {
			if (deq2.empty()) break;
			deq2.pop_back();
			scnt++;
		}
		while (!deq2.empty() && deq2.front() <= t)
			deq2.pop_front();
		++t;
	}

	printf("%d %d\n", scnt, lcnt);	
	return 0;
}

Compilation message

padak.cpp: In function 'int main()':
padak.cpp:38:41: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d%d%d%d%d", &n, &m, &k, &b, &z);
                                         ^
padak.cpp:41:24: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d%d", &r, &c);
                        ^
# Verdict Execution time Memory Grader output
1 Correct 0 ms 6032 KB Output is correct
2 Correct 0 ms 6032 KB Output is correct
3 Correct 46 ms 14488 KB Output is correct
4 Incorrect 33 ms 12308 KB Output isn't correct
5 Halted 0 ms 0 KB -