提出 #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
結果
AC × 2
AC × 96
セット名 テストケース
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