#include <bits/stdc++.h>
using namespace std;
typedef pair<int,int> pii;
int n, m, k, b, z;
bool visit[1000100];
int cnt[1000100], tcnt[1000100];
int px[] = {1,0,-1,0}, py[] = {0,1,0,-1};
bool ok(int x, int y) {
return x>=0&&x<n&&y>=0&&y<m;
}
int main() {
int i;
scanf("%d%d%d%d%d",&n,&m,&k,&b,&z);
queue<pii> qu;
for (i=0;i<k;i++) {
int a, b;
scanf("%d%d",&a,&b); --a; --b;
qu.push(pii(0,a*m+b)); visit[a*m+b] = 1;
}
int md = 0;
while(!qu.empty()) {
pii tmp = qu.front(); qu.pop();
int here = tmp.second, d = tmp.first;
cnt[d]++; tcnt[d]++; md = max(md,d);
int x = here/m, y = here%m;
for (i=0;i<4;i++) {
int nx = x+px[i], ny = y+py[i];
if (!ok(nx,ny)||visit[nx*m+ny]) continue;
qu.push(pii(d+1,nx*m+ny)); visit[nx*m+ny] = 1;
}
}
int maxi = 0; int q = 1;
for (i=0;i<=md;i++) {
q = max(q,i+1);
int rem = z;
while(q<=md&&rem) {
int v = min(rem,cnt[q]);
rem -= v;
cnt[q] -= v;
maxi += v;
if (!cnt[q]) q++;
}
}
for (i=0;i<=md;i++) cnt[i] = tcnt[i];
int mini = 0; q = md;
for (i=0;i<=md;i++) {
int rem = z;
while(q>i&&rem) {
int v = min(rem,cnt[q]);
cnt[q] -= v;
rem -= v;
mini += v;
if (!cnt[q]) q--;
}
}
printf("%d %d\n",mini,maxi);
return 0;
}
Compilation message
padak.cpp: In function 'int main()':
padak.cpp:19:36: 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:23:22: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
scanf("%d%d",&a,&b); --a; --b;
^
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
10808 KB |
Output is correct |
2 |
Correct |
0 ms |
10808 KB |
Output is correct |
3 |
Correct |
29 ms |
10808 KB |
Output is correct |
4 |
Correct |
23 ms |
10808 KB |
Output is correct |
5 |
Correct |
23 ms |
10808 KB |
Output is correct |
6 |
Correct |
23 ms |
10808 KB |
Output is correct |
7 |
Correct |
26 ms |
10808 KB |
Output is correct |
8 |
Correct |
39 ms |
10808 KB |
Output is correct |
9 |
Correct |
29 ms |
10808 KB |
Output is correct |
10 |
Correct |
23 ms |
10808 KB |
Output is correct |
11 |
Correct |
26 ms |
10940 KB |
Output is correct |
12 |
Correct |
29 ms |
10940 KB |
Output is correct |
13 |
Correct |
26 ms |
10808 KB |
Output is correct |
14 |
Correct |
26 ms |
10808 KB |
Output is correct |
15 |
Correct |
29 ms |
10808 KB |
Output is correct |
16 |
Correct |
29 ms |
10808 KB |
Output is correct |
17 |
Correct |
39 ms |
11204 KB |
Output is correct |
18 |
Correct |
36 ms |
11616 KB |
Output is correct |
19 |
Correct |
33 ms |
11204 KB |
Output is correct |
20 |
Correct |
29 ms |
10940 KB |
Output is correct |
21 |
Correct |
36 ms |
11864 KB |
Output is correct |
22 |
Correct |
33 ms |
10808 KB |
Output is correct |
23 |
Correct |
36 ms |
10940 KB |
Output is correct |
24 |
Correct |
333 ms |
19184 KB |
Output is correct |
25 |
Correct |
326 ms |
19184 KB |
Output is correct |
26 |
Correct |
313 ms |
19184 KB |
Output is correct |
27 |
Correct |
356 ms |
19184 KB |
Output is correct |
28 |
Correct |
319 ms |
19184 KB |
Output is correct |
29 |
Correct |
313 ms |
19052 KB |
Output is correct |
30 |
Correct |
313 ms |
19184 KB |
Output is correct |
31 |
Correct |
26 ms |
10808 KB |
Output is correct |
32 |
Correct |
43 ms |
10808 KB |
Output is correct |