提出 #72980753
ソースコード 拡げる
#include <stdio.h>
#include <stdlib.h>
struct event_s {
int sx, dx, y, delta;
};
/* yの昇順、yが同じならdeltaの降順 (deltaが正のほうが先) */
int cmp(const void* x, const void* y) {
struct event_s a = *(const struct event_s*)x, b = *(const struct event_s*)y;
return
((a.y > b.y) - (a.y < b.y)) * 2 +
((a.delta < b.delta) - (a.delta > b.delta));
}
int n;
int a, b;
int p[5123], q[5123], r[5123], s[5123];
struct event_s events[5123 * 2];
int counts[1123456];
int counts_of_counts[5123];
int areas[5123];
int main(void) {
int i;
int max_sheets = 0;
if (scanf("%d", &n) != 1) return 1;
if (scanf("%d%d", &a, &b) != 2) return 1;
for (i = 0; i < n; i++) {
if (scanf("%d%d%d%d", &p[i], &q[i], &r[i], &s[i]) != 4) return 1;
events[i * 2] = (struct event_s){ p[i], r[i], q[i], 1 };
events[i * 2 + 1] = (struct event_s){ p[i], r[i], s[i] + 1, -1 };
}
events[n * 2] = (struct event_s){ 0, 0, 0, 0 };
qsort(events, n * 2 + 1, sizeof(*events), cmp);
for (i = 1; i <= n * 2; i++) {
int j;
for (j = 1; j <= max_sheets; j++) {
areas[j] += counts_of_counts[j] * (events[i].y - events[i - 1].y);
}
for (j = events[i].sx; j <= events[i].dx; j++) {
counts_of_counts[counts[j]]--;
counts[j] += events[i].delta;
counts_of_counts[counts[j]]++;
}
max_sheets += events[i].delta;
}
for (i = n; i > 0; i--) {
if (areas[i] > 0) {
printf("%d\n%d\n", i, areas[i]);
return 0;
}
}
puts("ERROR!");
return 0;
}
提出情報
ジャッジ結果
| セット名 |
Set01 |
Set02 |
Set03 |
Set04 |
Set05 |
Set06 |
Set07 |
Set08 |
Set09 |
Set10 |
| 得点 / 配点 |
10 / 10 |
10 / 10 |
10 / 10 |
10 / 10 |
10 / 10 |
10 / 10 |
10 / 10 |
10 / 10 |
10 / 10 |
10 / 10 |
| 結果 |
|
|
|
|
|
|
|
|
|
|
| セット名 |
テストケース |
| Set01 |
01 |
| Set02 |
02 |
| Set03 |
03 |
| Set04 |
04 |
| Set05 |
05 |
| Set06 |
06 |
| Set07 |
07 |
| Set08 |
08 |
| Set09 |
09 |
| Set10 |
10 |
| ケース名 |
結果 |
実行時間 |
メモリ |
| 01 |
AC |
1 ms |
1748 KiB |
| 02 |
AC |
1 ms |
1752 KiB |
| 03 |
AC |
1 ms |
1848 KiB |
| 04 |
AC |
1 ms |
1756 KiB |
| 05 |
AC |
2 ms |
1972 KiB |
| 06 |
AC |
12 ms |
2036 KiB |
| 07 |
AC |
4 ms |
2012 KiB |
| 08 |
AC |
3 ms |
2140 KiB |
| 09 |
AC |
2 ms |
2136 KiB |
| 10 |
AC |
5 ms |
5424 KiB |