ログインしてください。
提出 #13350828
ソースコード 拡げる
#include <bits/stdc++.h>
#define IO_OP std::ios::sync_with_stdio(0); std::cin.tie(0);
#define F first
#define S second
#define V vector
#define PB push_back
#define MP make_pair
#define EB emplace_back
#define ALL(v) (v).begin(), (v).end()
#define debug(x) cerr << #x << " is " << x << endl
using namespace std;
typedef long long ll;
typedef pair<int, int> pi;
typedef V<int> vi;
const int INF = 1e9 + 7, N = 4010;
int a[N], b[N], c[N], d[N], e[N], f[N];
bool l[N][N], r[N][N], u[N][N], dd[N][N]; // blocked ?
bool vis[N][N];
int dir[][2] = {{0, 1}, {0, -1}, {1, 0}, {-1, 0}};
vi xs({-INF, INF}), ys({-INF, INF});
queue<pi> q;
void BFS(int x, int y) {
vis[x][y] = 1;
q.push({x, y});
while(q.size()) {
int x = q.front().F, y = q.front().S;
q.pop();
for(int i = 0; i < 4; i++) {
if(i == 0 && u[x][y]) continue;
if(i == 1 && dd[x][y]) continue;
if(i == 2 && r[x][y]) continue;
if(i == 3 && l[x][y]) continue;
int xx = x + dir[i][0];
int yy = y + dir[i][1];
if(xx < 0 || yy < 0) continue;
if(xx >= xs.size() - 1 || yy >= ys.size() - 1) continue;
if(vis[xx][yy]) continue;
vis[xx][yy] = 1;
q.push({xx, yy});
}
}
}
signed main()
{
IO_OP;
int n, m;
cin >> n >> m;
for(int i = 0; i < n; i++) {
cin >> a[i] >> b[i] >> c[i];
xs.PB(a[i]);
xs.PB(b[i]);
ys.PB(c[i]);
}
for(int i = 0; i < m; i++) {
cin >> d[i] >> e[i] >> f[i];
xs.PB(d[i]);
ys.PB(e[i]);
ys.PB(f[i]);
}
sort(ALL(xs));
sort(ALL(ys));
xs.resize(unique(ALL(xs)) - xs.begin());
ys.resize(unique(ALL(ys)) - ys.begin());
int x = lower_bound(ALL(xs), 0) - xs.begin();
int y = lower_bound(ALL(ys), 0) - ys.begin();
x--, y--;
for(int i = 0; i < n; i++) {
int aa = lower_bound(ALL(xs), a[i]) - xs.begin();
int bb = lower_bound(ALL(xs), b[i]) - xs.begin();
int cc = lower_bound(ALL(ys), c[i]) - ys.begin();
for(int j = aa; j < bb; j++) {
u[j][cc-1] = 1;
dd[j][cc] = 1;
}
}
for(int i = 0; i < m; i++) {
int ddd = lower_bound(ALL(xs), d[i]) - xs.begin();
int ee = lower_bound(ALL(ys), e[i]) - ys.begin();
int ff = lower_bound(ALL(ys), f[i]) - ys.begin();
for(int j = ee; j < ff; j++) {
r[ddd-1][j] = 1;
l[ddd][j] = 1;
}
}
BFS(x, y);
if(vis[0][0] || vis[xs.size() - 1][ys.size() - 1]) {
cout << "INF" << endl;
return 0;
}
ll ans = 0;
for(int i = 0; i < xs.size() - 1; i++) {
for(int j = 0; j < ys.size() - 1; j++) {
if(vis[i][j]) {
ans += (ll) (xs[i + 1] - xs[i]) * (ys[j + 1] - ys[j]);
}
}
}
cout << ans << endl;
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | F - . (Single Dot) |
| ユーザ | cheissmart |
| 言語 | C++ (GCC 9.2.1) |
| 得点 | 600 |
| コード長 | 2617 Byte |
| 結果 | AC |
| 実行時間 | 279 ms |
| メモリ | 49940 KiB |
コンパイルエラー
./Main.cpp: In function ‘void BFS(int, int)’:
./Main.cpp:44:10: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
44 | if(xx >= xs.size() - 1 || yy >= ys.size() - 1) continue;
| ~~~^~~~~~~~~~~~~~~~
./Main.cpp:44:33: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
44 | if(xx >= xs.size() - 1 || yy >= ys.size() - 1) continue;
| ~~~^~~~~~~~~~~~~~~~
./Main.cpp: In function ‘int main()’:
./Main.cpp:101:19: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
101 | for(int i = 0; i < xs.size() - 1; i++) {
| ~~^~~~~~~~~~~~~~~
./Main.cpp:102:20: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
102 | for(int j = 0; j < ys.size() - 1; j++) {
| ~~^~~~~~~~~~~~~~~
ジャッジ結果
| セット名 | Sample | Subtask1 | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 600 / 600 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | sample_01.txt, sample_02.txt |
| Subtask1 | sample_01.txt, sample_02.txt, sub1_01.txt, sub1_02.txt, sub1_03.txt, sub1_04.txt, sub1_05.txt, sub1_06.txt, sub1_07.txt, sub1_08.txt, sub1_09.txt, sub1_10.txt, sub1_11.txt, sub1_12.txt, sub1_13.txt, sub1_14.txt, sub1_15.txt, sub1_16.txt, sub1_17.txt, sub1_18.txt, sub1_19.txt, sub1_20.txt, sub1_21.txt, sub1_22.txt, sub1_23.txt, sub1_24.txt, sub1_25.txt, sub1_26.txt, sub1_27.txt, sub1_28.txt, sub1_29.txt, sub1_30.txt, sub1_31.txt, sub1_32.txt, sub1_33.txt, sub1_34.txt, sub1_35.txt, sub1_36.txt, sub1_37.txt, sub1_38.txt, sub1_39.txt, sub1_40.txt, sub1_41.txt, sub1_42.txt, sub1_43.txt, sub1_44.txt, sub1_45.txt, sub1_46.txt, sub1_47.txt, sub1_48.txt, sub1_49.txt, sub1_50.txt, sub1_51.txt, sub1_52.txt, sub1_53.txt, sub1_54.txt, sub1_55.txt, sub1_56.txt, sub1_57.txt, sub1_58.txt, sub1_59.txt, sub1_60.txt, sub1_61.txt, sub1_62.txt, sub1_63.txt, sub1_64.txt, sub1_65.txt, sub1_66.txt, sub1_67.txt, sub1_68.txt, sub1_69.txt, sub1_70.txt, sub1_71.txt, sub1_72.txt, sub1_73.txt, sub1_74.txt, sub1_75.txt, sub1_76.txt, sub1_77.txt, sub1_78.txt, sub1_79.txt, sub1_80.txt, sub1_81.txt, sub1_82.txt, sub1_83.txt, sub1_84.txt, sub1_85.txt, sub1_86.txt, sub1_87.txt, sub1_88.txt, sub1_89.txt, sub1_90.txt, sub1_91.txt, sub1_92.txt, sub1_93.txt, sub1_94.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| sample_01.txt | AC | 2 ms | 3772 KiB |
| sample_02.txt | AC | 2 ms | 3552 KiB |
| sub1_01.txt | AC | 20 ms | 21520 KiB |
| sub1_02.txt | AC | 21 ms | 18708 KiB |
| sub1_03.txt | AC | 14 ms | 14748 KiB |
| sub1_04.txt | AC | 12 ms | 11012 KiB |
| sub1_05.txt | AC | 33 ms | 29128 KiB |
| sub1_06.txt | AC | 17 ms | 18128 KiB |
| sub1_07.txt | AC | 17 ms | 18464 KiB |
| sub1_08.txt | AC | 25 ms | 19540 KiB |
| sub1_09.txt | AC | 16 ms | 16448 KiB |
| sub1_10.txt | AC | 36 ms | 32264 KiB |
| sub1_11.txt | AC | 4 ms | 6104 KiB |
| sub1_12.txt | AC | 2 ms | 4292 KiB |
| sub1_13.txt | AC | 2 ms | 3756 KiB |
| sub1_14.txt | AC | 2 ms | 3944 KiB |
| sub1_15.txt | AC | 2 ms | 4236 KiB |
| sub1_16.txt | AC | 2 ms | 3832 KiB |
| sub1_17.txt | AC | 15 ms | 19336 KiB |
| sub1_18.txt | AC | 31 ms | 23244 KiB |
| sub1_19.txt | AC | 27 ms | 23240 KiB |
| sub1_20.txt | AC | 33 ms | 23120 KiB |
| sub1_21.txt | AC | 34 ms | 23144 KiB |
| sub1_22.txt | AC | 25 ms | 23104 KiB |
| sub1_23.txt | AC | 30 ms | 23060 KiB |
| sub1_24.txt | AC | 28 ms | 23048 KiB |
| sub1_25.txt | AC | 32 ms | 23164 KiB |
| sub1_26.txt | AC | 29 ms | 23172 KiB |
| sub1_27.txt | AC | 18 ms | 19508 KiB |
| sub1_28.txt | AC | 18 ms | 19536 KiB |
| sub1_29.txt | AC | 15 ms | 18856 KiB |
| sub1_30.txt | AC | 19 ms | 19084 KiB |
| sub1_31.txt | AC | 16 ms | 18536 KiB |
| sub1_32.txt | AC | 31 ms | 22240 KiB |
| sub1_33.txt | AC | 20 ms | 19468 KiB |
| sub1_34.txt | AC | 24 ms | 19656 KiB |
| sub1_35.txt | AC | 26 ms | 21432 KiB |
| sub1_36.txt | AC | 21 ms | 19380 KiB |
| sub1_37.txt | AC | 30 ms | 23140 KiB |
| sub1_38.txt | AC | 10 ms | 8988 KiB |
| sub1_39.txt | AC | 8 ms | 6728 KiB |
| sub1_40.txt | AC | 27 ms | 23120 KiB |
| sub1_41.txt | AC | 12 ms | 8812 KiB |
| sub1_42.txt | AC | 2 ms | 3976 KiB |
| sub1_43.txt | AC | 2 ms | 3756 KiB |
| sub1_44.txt | AC | 2 ms | 3896 KiB |
| sub1_45.txt | AC | 2 ms | 3848 KiB |
| sub1_46.txt | AC | 2 ms | 3776 KiB |
| sub1_47.txt | AC | 16 ms | 12368 KiB |
| sub1_48.txt | AC | 18 ms | 12308 KiB |
| sub1_49.txt | AC | 16 ms | 12348 KiB |
| sub1_50.txt | AC | 18 ms | 12312 KiB |
| sub1_51.txt | AC | 17 ms | 12208 KiB |
| sub1_52.txt | AC | 16 ms | 12228 KiB |
| sub1_53.txt | AC | 22 ms | 12236 KiB |
| sub1_54.txt | AC | 16 ms | 12316 KiB |
| sub1_55.txt | AC | 154 ms | 47208 KiB |
| sub1_56.txt | AC | 137 ms | 47300 KiB |
| sub1_57.txt | AC | 187 ms | 47216 KiB |
| sub1_58.txt | AC | 136 ms | 47180 KiB |
| sub1_59.txt | AC | 135 ms | 47256 KiB |
| sub1_60.txt | AC | 174 ms | 47120 KiB |
| sub1_61.txt | AC | 59 ms | 28608 KiB |
| sub1_62.txt | AC | 137 ms | 46284 KiB |
| sub1_63.txt | AC | 3 ms | 5920 KiB |
| sub1_64.txt | AC | 117 ms | 39316 KiB |
| sub1_65.txt | AC | 13 ms | 9740 KiB |
| sub1_66.txt | AC | 21 ms | 18412 KiB |
| sub1_67.txt | AC | 6 ms | 7584 KiB |
| sub1_68.txt | AC | 16 ms | 12016 KiB |
| sub1_69.txt | AC | 14 ms | 12840 KiB |
| sub1_70.txt | AC | 15 ms | 13016 KiB |
| sub1_71.txt | AC | 2 ms | 3760 KiB |
| sub1_72.txt | AC | 2 ms | 3700 KiB |
| sub1_73.txt | AC | 2 ms | 3620 KiB |
| sub1_74.txt | AC | 34 ms | 24616 KiB |
| sub1_75.txt | AC | 14 ms | 12664 KiB |
| sub1_76.txt | AC | 60 ms | 36508 KiB |
| sub1_77.txt | AC | 7 ms | 9484 KiB |
| sub1_78.txt | AC | 8 ms | 9624 KiB |
| sub1_79.txt | AC | 12 ms | 15388 KiB |
| sub1_80.txt | AC | 12 ms | 15480 KiB |
| sub1_81.txt | AC | 15 ms | 15520 KiB |
| sub1_82.txt | AC | 22 ms | 21380 KiB |
| sub1_83.txt | AC | 2 ms | 3884 KiB |
| sub1_84.txt | AC | 3 ms | 3648 KiB |
| sub1_85.txt | AC | 5 ms | 3696 KiB |
| sub1_86.txt | AC | 2 ms | 3776 KiB |
| sub1_87.txt | AC | 2 ms | 3800 KiB |
| sub1_88.txt | AC | 2 ms | 4016 KiB |
| sub1_89.txt | AC | 272 ms | 49872 KiB |
| sub1_90.txt | AC | 274 ms | 49940 KiB |
| sub1_91.txt | AC | 268 ms | 49928 KiB |
| sub1_92.txt | AC | 269 ms | 49900 KiB |
| sub1_93.txt | AC | 279 ms | 49868 KiB |
| sub1_94.txt | AC | 2 ms | 3636 KiB |