ABC005 C:おいしいたこ焼きの売り方
人生ではじめてgoto文を使ってしまった。
https://atcoder.jp/contests/abc005/tasks/abc005_3
先に来店した客から順に、Ai <= Bj <= Ai + T の範囲内にあるたこ焼きを素直にさばいていく。これを貪欲法と言ってしまっていいのかはわからないが。
signed main() {
int t, n;
cin >> t >> n;
vector<int> as(n);
rep(i, n) {
cin >> as[i];
}
int m;
cin >> m;
vector<int> bs(m);
rep(i, m) {
cin >> bs[i];
}
int ai = 0, bi = 0;
for (; bi < m; ai++, bi++) {
if (ai >= n) goto NO;
while (!(as[ai] <= bs[bi] && as[ai] + t >= bs[bi])) {
ai++;
if (ai >= n) goto NO;
}
}
puts("yes");
return 0;
NO:
puts("no");
return 0;
}
公式解説を見ると「二部グラフ」なるこれまたいかついアルゴリズムでも解ける模様。
おれにはまだまだ時期早々なテクニックだと思うので、頭の片隅に入れておこう。