ログインしてください。
提出 #26053504
ソースコード 拡げる
#include <algorithm>
#include <iostream>
#include <vector>
template <class T> std::vector<int> shrink_coordinate(std::vector<T> &a) {
std::vector<T> b = a;
std::sort(b.begin(), b.end());
b.erase(std::unique(b.begin(), b.end()), b.end());
int N = a.size();
std::vector<int> res(N);
for (int i = 0; i < N; i++) {
res[i] = std::lower_bound(b.begin(), b.end(), a[i]) - b.begin();
}
return res;
}
int main() {
int N, K;
std::cin >> N >> K;
std::vector<int> x(2 * N), y(2 * N), d(2 * N);
for (int i = 0; i < N; i++) {
int x1, y1, d1, x2, y2, d2;
std::cin >> x1 >> y1 >> d1 >> x2 >> y2 >> d2;
x[i] = x1;
x[i + N] = x2;
y[i] = y1;
y[i + N] = y2;
d[i] = d1;
d[i + N] = d2;
}
std::vector<int> shrink_x = shrink_coordinate(x);
std::vector<int> shrink_y = shrink_coordinate(y);
std::vector<int> shrink_d = shrink_coordinate(d);
int cnt[110][110][110] = {0};
for (int i = 0; i < N; i++) {
int shrink_x1 = shrink_x[i];
int shrink_x2 = shrink_x[i + N];
int shrink_y1 = shrink_y[i];
int shrink_y2 = shrink_y[i + N];
int shrink_d1 = shrink_d[i];
int shrink_d2 = shrink_d[i + N];
for (int x = shrink_x1; x < shrink_x2; x++) {
for (int y = shrink_y1; y < shrink_y2; y++) {
for (int d = shrink_d1; d < shrink_d2; d++) {
cnt[x][y][d]++;
}
}
}
}
sort(x.begin(), x.end());
x.erase(unique(x.begin(), x.end()), x.end());
sort(y.begin(), y.end());
y.erase(unique(y.begin(), y.end()), y.end());
sort(d.begin(), d.end());
d.erase(unique(d.begin(), d.end()), d.end());
long long ans = 0;
for (int sx = 0; sx < (int)x.size() - 1; sx++) {
for (int sy = 0; sy < (int)y.size() - 1; sy++) {
for (int sd = 0; sd < (int)d.size() - 1; sd++) {
if (cnt[sx][sy][sd] < K) {
continue;
}
long long x1 = x[sx];
long long x2 = x[sx + 1];
long long y1 = y[sy];
long long y2 = y[sy + 1];
long long d1 = d[sd];
long long d2 = d[sd + 1];
ans += (x2 - x1) * (y2 - y1) * (d2 - d1);
}
}
}
std::cout << ans << "\n";
return 0;
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | E - 魚の生息範囲 (Fish) |
| ユーザ | kira924age |
| 言語 | C++ (GCC 9.2.1) |
| 得点 | 100 |
| コード長 | 2244 Byte |
| 結果 | AC |
| 実行時間 | 17 ms |
| メモリ | 8736 KiB |
ジャッジ結果
| セット名 | set01 | set02 | set03 | set04 | set05 | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 得点 / 配点 | 20 / 20 | 20 / 20 | 20 / 20 | 20 / 20 | 20 / 20 | ||||||||||
| 結果 |
|
|
|
|
|
| セット名 | テストケース |
|---|---|
| set01 | data1 |
| set02 | data2 |
| set03 | data3 |
| set04 | data4 |
| set05 | data5 |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| data1 | AC | 14 ms | 8680 KiB |
| data2 | AC | 14 ms | 8732 KiB |
| data3 | AC | 14 ms | 8736 KiB |
| data4 | AC | 17 ms | 8596 KiB |
| data5 | AC | 17 ms | 8732 KiB |