[AtCoder] キーエンス プログラミング コンテスト 2020 B – Robot Arms
問題
方針
ロボット \( i \) は、区間 \( (X_i – L_i, X_i + L_i) \) に存在しています。\( X_i + L_i \) について昇順に並び替え、先頭から順番に配置していきます。
コード
#include <bits/stdc++.h> using namespace std; typedef long long ll; bool my_compare(pair<int, int> a, pair<int, int > b) { return a.second < b.second; } int main() { int N; cin >> N; int X[N], L[N]; vector<pair<int, int>> p(N); for (int i = 0; i < N; i++) { cin >> X[i] >> L[i]; p[i] = make_pair(X[i] - L[i], X[i] + L[i]); } sort(p.begin(), p.end(), my_compare); int ans = 0; int t = INT32_MIN; for (pair<int, int> v : p) { if (t <= v.first) { ans++; t = v.second; } } cout << ans << "\n"; return 0; }
ディスカッション
コメント一覧
まだ、コメントがありません