Submission #1477332
Source Code Expand
#include <cstdio> #include <cstdlib> #include <cmath> #include <climits> #include <cfloat> #include <cstring> #include <map> #include <utility> #include <set> #include <iostream> #include <memory> #include <string> #include <vector> #include <list> #include <algorithm> #include <functional> #include <sstream> #include <complex> #include <stack> #include <queue> #include <unordered_set> #include <unordered_map> #include <array> #include <cassert> #include <bitset> using namespace std; using LL = long long; LL W, H, Q; struct B { LL pos, tim, wid; B(LL p, LL t, LL w) :pos(p), tim(t), wid(w) {} }; vector<B>xbeam, ybeam; LL walk(vector<B>& beam_v, LL span) { sort(beam_v.begin(), beam_v.end(), [](const B&b1, const B&b2) { if (b1.tim == b2.tim)return b1.pos < b2.pos; return b1.tim < b2.tim; }); list<B> beam; for (auto b : beam_v)beam.push_back(b); for (auto itr = beam.begin(); itr != beam.end(); ++itr) { auto nxt = itr; ++nxt; while (nxt != beam.end() && itr->tim == nxt->tim && itr->pos + itr->wid >= nxt->pos) { itr->wid++; nxt = beam.erase(nxt); } } vector<LL>dp(span, 0); for (auto b : beam) { LL lef = b.pos - 1; LL rht = b.pos + b.wid; LL lval = (lef < 0) ? INT_MAX : dp[lef]; LL rval = (rht >= span) ? INT_MAX : dp[rht]; for (LL i = lef + 1; i < rht; ++i) { LL val = min(lval + abs(i - lef), rval + abs(i - rht)); dp[i] = val; } } LL ans = INT_MAX; for (auto elm : dp)ans = min(ans, elm); return (ans == INT_MAX) ? -1 : ans; } int main(void) { cin >> W >> H >> Q; for (int i = 0; i < Q; ++i) { LL t, d, x; cin >> t >> d >> x; --x; if (d == 0) { xbeam.push_back(B(x, t, 1)); } else { ybeam.push_back(B(x, t, 1)); } } LL r1 = walk(xbeam, W); LL r2 = walk(ybeam, H); if (r1 < 0 || r2 < 0) { cout << -1 << endl; return 0; } cout << r1 + r2 << endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | C - ビーム |
User | platypus |
Language | C++14 (GCC 5.4.1) |
Score | 100 |
Code Size | 1975 Byte |
Status | AC |
Exec Time | 95 ms |
Memory | 8048 KB |
Judge Result
Set Name | Sample | Subtask1 | Subtask2 | ||||||
---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 30 / 30 | 70 / 70 | ||||||
Status |
|
|
|
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 | 1 ms | 256 KB |
sample_02.txt | AC | 1 ms | 256 KB |
sample_03.txt | AC | 1 ms | 256 KB |
subtask1_01.txt | AC | 1 ms | 256 KB |
subtask1_02.txt | AC | 1 ms | 256 KB |
subtask1_03.txt | AC | 1 ms | 256 KB |
subtask1_04.txt | AC | 1 ms | 256 KB |
subtask1_05.txt | AC | 1 ms | 256 KB |
subtask1_06.txt | AC | 1 ms | 256 KB |
subtask1_07.txt | AC | 1 ms | 256 KB |
subtask1_08.txt | AC | 1 ms | 256 KB |
subtask1_09.txt | AC | 1 ms | 256 KB |
subtask1_10.txt | AC | 1 ms | 256 KB |
subtask1_11.txt | AC | 1 ms | 256 KB |
subtask1_12.txt | AC | 1 ms | 256 KB |
subtask1_13.txt | AC | 1 ms | 256 KB |
subtask1_14.txt | AC | 1 ms | 256 KB |
subtask1_15.txt | AC | 1 ms | 256 KB |
subtask1_16.txt | AC | 1 ms | 256 KB |
subtask1_17.txt | AC | 1 ms | 256 KB |
subtask1_18.txt | AC | 1 ms | 256 KB |
subtask1_19.txt | AC | 1 ms | 256 KB |
subtask1_20.txt | AC | 1 ms | 256 KB |
subtask1_21.txt | AC | 1 ms | 256 KB |
subtask1_22.txt | AC | 1 ms | 256 KB |
subtask1_23.txt | AC | 1 ms | 256 KB |
subtask1_24.txt | AC | 1 ms | 256 KB |
subtask1_25.txt | AC | 1 ms | 256 KB |
subtask1_26.txt | AC | 1 ms | 256 KB |
subtask1_27.txt | AC | 1 ms | 256 KB |
subtask1_28.txt | AC | 1 ms | 256 KB |
subtask1_29.txt | AC | 1 ms | 256 KB |
subtask1_30.txt | AC | 1 ms | 256 KB |
subtask2_01.txt | AC | 81 ms | 4940 KB |
subtask2_02.txt | AC | 80 ms | 4980 KB |
subtask2_03.txt | AC | 74 ms | 4952 KB |
subtask2_04.txt | AC | 74 ms | 7584 KB |
subtask2_05.txt | AC | 74 ms | 4968 KB |
subtask2_06.txt | AC | 95 ms | 5676 KB |
subtask2_07.txt | AC | 79 ms | 4896 KB |
subtask2_08.txt | AC | 72 ms | 4952 KB |
subtask2_09.txt | AC | 74 ms | 4900 KB |
subtask2_10.txt | AC | 75 ms | 5036 KB |
subtask2_11.txt | AC | 76 ms | 8048 KB |
subtask2_12.txt | AC | 75 ms | 4964 KB |
subtask2_13.txt | AC | 75 ms | 4964 KB |
subtask2_14.txt | AC | 79 ms | 4992 KB |
subtask2_15.txt | AC | 2 ms | 384 KB |
subtask2_16.txt | AC | 1 ms | 256 KB |
subtask2_17.txt | AC | 75 ms | 4968 KB |
subtask2_18.txt | AC | 83 ms | 6060 KB |
subtask2_19.txt | AC | 88 ms | 8048 KB |
subtask2_20.txt | AC | 76 ms | 4960 KB |
subtask2_21.txt | AC | 73 ms | 4964 KB |
subtask2_22.txt | AC | 74 ms | 5936 KB |
subtask2_23.txt | AC | 74 ms | 4968 KB |
subtask2_24.txt | AC | 73 ms | 5676 KB |
subtask2_25.txt | AC | 75 ms | 4984 KB |
subtask2_26.txt | AC | 75 ms | 4952 KB |
subtask2_27.txt | AC | 73 ms | 4988 KB |
subtask2_28.txt | AC | 73 ms | 7280 KB |
subtask2_29.txt | AC | 74 ms | 4964 KB |
subtask2_30.txt | AC | 72 ms | 4964 KB |