Submission #1499113


Source Code Expand

#include<iostream>
#include<algorithm>
#include<vector>
#include<cstdio>
#include<list>
#include<queue>
#include<string.h>
#include<functional>
#include<stack>
#include<deque>
#include<string>
#include<limits.h>
#include<map>
#include<set>
#include<unordered_map>
#include<cmath>
#include<unordered_set>
#define int long long
using namespace std;

int dpa[100000], dpb[100000];
vector<int>a[100000], b[100000];
signed main() {
	int x, y, q; cin >> x >> y >> q;
	for (int i = 0; i < q; i++) {
		int t, d, s; cin >> t >> d >> s; t--; s--;
		if (d) {
			b[t].push_back(s);
		}
		else {
			a[t].push_back(s);
		}
	}
	for (int i = 0; i < 100000; i++) {
		sort(a[i].begin(), a[i].end());
		if(a[i].size())a[i].push_back(1 << 29);
		int h = -5, l = -5;//始まり 直前
		for (int j = 0; j < a[i].size(); j++) {
			if (a[i][j] - 1 == l) {
				l++;
			}
			else {
				for (int o = h; o <= l; o++) {
					int MIN = 1 << 29;
					if (h != 0)MIN = min(MIN, dpa[h - 1] + o - (h - 1));
					if (l != x - 1) {
						MIN = min(MIN, dpa[l + 1] + l + 1 - o);
					}
					dpa[o] = MIN;
				}
				h = a[i][j];
				l = a[i][j];
			}
		}
	}
	for (int i = 0; i < 100000; i++) {
		sort(b[i].begin(), b[i].end());
		if(b[i].size())b[i].push_back(1 << 29);
		int h = -5, l = -5, k = -5;//始まり 直前 index
		for (int j = 0; j < b[i].size(); j++) {
			if (b[i][j] - 1 == l) {
				l++;
			}
			else {
				for (int o = h; o <= l; o++) {
					int MIN = 1 << 29;
					if (h != 0)MIN = min(MIN, dpb[h - 1] + o - (h - 1));
					if (l != y - 1) {
						MIN = min(MIN, dpb[l + 1] + l + 1 - o);
					}
					dpb[o] = MIN;
				}
				h = b[i][j];
				l = b[i][j];
				k = j;
			}
		}
	}
	int ans = *min_element(dpa, dpa + x) + *min_element(dpb, dpb + y);
	if (ans >= 1 << 29)puts("-1");
	else cout << ans << endl;
}

Submission Info

Submission Time
Task C - ビーム
User naoki2016
Language C++14 (GCC 5.4.1)
Score 100
Code Size 1870 Byte
Status AC
Exec Time 91 ms
Memory 9600 KB

Judge Result

Set Name Sample Subtask1 Subtask2
Score / Max Score 0 / 0 30 / 30 70 / 70
Status
AC × 3
AC × 33
AC × 63
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
Subtask1 sample_01.txt, sample_02.txt, sample_03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask1_21.txt, subtask1_22.txt, subtask1_23.txt, subtask1_24.txt, subtask1_25.txt, subtask1_26.txt, subtask1_27.txt, subtask1_28.txt, subtask1_29.txt, subtask1_30.txt
Subtask2 sample_01.txt, sample_02.txt, sample_03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask1_21.txt, subtask1_22.txt, subtask1_23.txt, subtask1_24.txt, subtask1_25.txt, subtask1_26.txt, subtask1_27.txt, subtask1_28.txt, subtask1_29.txt, subtask1_30.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt, subtask2_08.txt, subtask2_09.txt, subtask2_10.txt, subtask2_11.txt, subtask2_12.txt, subtask2_13.txt, subtask2_14.txt, subtask2_15.txt, subtask2_16.txt, subtask2_17.txt, subtask2_18.txt, subtask2_19.txt, subtask2_20.txt, subtask2_21.txt, subtask2_22.txt, subtask2_23.txt, subtask2_24.txt, subtask2_25.txt, subtask2_26.txt, subtask2_27.txt, subtask2_28.txt, subtask2_29.txt, subtask2_30.txt
Case Name Status Exec Time Memory
sample_01.txt AC 4 ms 6400 KB
sample_02.txt AC 4 ms 6400 KB
sample_03.txt AC 4 ms 6400 KB
subtask1_01.txt AC 4 ms 6400 KB
subtask1_02.txt AC 4 ms 6400 KB
subtask1_03.txt AC 4 ms 6400 KB
subtask1_04.txt AC 4 ms 6400 KB
subtask1_05.txt AC 4 ms 6400 KB
subtask1_06.txt AC 4 ms 6400 KB
subtask1_07.txt AC 4 ms 6400 KB
subtask1_08.txt AC 4 ms 6400 KB
subtask1_09.txt AC 4 ms 6400 KB
subtask1_10.txt AC 4 ms 6400 KB
subtask1_11.txt AC 4 ms 6400 KB
subtask1_12.txt AC 4 ms 6400 KB
subtask1_13.txt AC 4 ms 6400 KB
subtask1_14.txt AC 4 ms 6400 KB
subtask1_15.txt AC 4 ms 6400 KB
subtask1_16.txt AC 4 ms 6400 KB
subtask1_17.txt AC 4 ms 6400 KB
subtask1_18.txt AC 4 ms 6400 KB
subtask1_19.txt AC 4 ms 6400 KB
subtask1_20.txt AC 4 ms 6400 KB
subtask1_21.txt AC 4 ms 6400 KB
subtask1_22.txt AC 4 ms 6400 KB
subtask1_23.txt AC 4 ms 6400 KB
subtask1_24.txt AC 4 ms 6400 KB
subtask1_25.txt AC 4 ms 6400 KB
subtask1_26.txt AC 4 ms 6400 KB
subtask1_27.txt AC 4 ms 6400 KB
subtask1_28.txt AC 4 ms 6400 KB
subtask1_29.txt AC 4 ms 6400 KB
subtask1_30.txt AC 4 ms 6400 KB
subtask2_01.txt AC 87 ms 9472 KB
subtask2_02.txt AC 88 ms 9472 KB
subtask2_03.txt AC 77 ms 9472 KB
subtask2_04.txt AC 64 ms 7424 KB
subtask2_05.txt AC 68 ms 7420 KB
subtask2_06.txt AC 91 ms 9600 KB
subtask2_07.txt AC 82 ms 9472 KB
subtask2_08.txt AC 64 ms 7680 KB
subtask2_09.txt AC 64 ms 7680 KB
subtask2_10.txt AC 65 ms 7680 KB
subtask2_11.txt AC 67 ms 7396 KB
subtask2_12.txt AC 66 ms 7552 KB
subtask2_13.txt AC 78 ms 9600 KB
subtask2_14.txt AC 82 ms 9472 KB
subtask2_15.txt AC 5 ms 6400 KB
subtask2_16.txt AC 4 ms 6400 KB
subtask2_17.txt AC 65 ms 7424 KB
subtask2_18.txt AC 85 ms 9472 KB
subtask2_19.txt AC 88 ms 9344 KB
subtask2_20.txt AC 67 ms 7808 KB
subtask2_21.txt AC 75 ms 9216 KB
subtask2_22.txt AC 71 ms 8448 KB
subtask2_23.txt AC 77 ms 9472 KB
subtask2_24.txt AC 69 ms 7552 KB
subtask2_25.txt AC 65 ms 7680 KB
subtask2_26.txt AC 65 ms 7552 KB
subtask2_27.txt AC 64 ms 7296 KB
subtask2_28.txt AC 65 ms 7296 KB
subtask2_29.txt AC 65 ms 7552 KB
subtask2_30.txt AC 68 ms 8192 KB