【AtCoder】ABC 453 B - Sensor Data Logging

B - Sensor Data Loggingatcoder.jp favicon

実行時間制限: 2 sec / メモリ制限: 1024 MiB / Difficulty: 49 / NoviSteps: 6Q / 配点: 200 点

問題概要

ある測定では、時刻 0,1,,T0,1,\dots,T におけるセンサーの測定値を以下の規則で記録している。

  • 時刻 00 では、測定値を保存する。
  • 時刻 1,2,,T1,2,\dots,T では、「現時刻の測定値」と「直前に保存された測定値」との差の絶対値が XX 以上であるとき、またその時に限り値を保存する。

時刻 i=0,1,,Ti=0,1,\dots,T におけるセンサーの測定値は AiA_i であった。 測定値が保存された時刻と保存された値とを、時刻の昇順に出力せよ。

制約

  • 1T1001 \le T \le 100
  • 1X1001 \le X \le 100
  • 0Ai1000 \le A_i \le 100
  • 入力はすべて整数

考察

問題文で言われたとおりに実装していけば特に難しいことはない。

実装例

CPP
1.#include <bits/stdc++.h>
2.using namespace std;
3.
4.#define rep(i, start, end) for (auto i = (start); (i) < (end); (i)++)
5.
6.// ======================================== //
7.
8.int main()
9.{
10. int T, X, value;
11. cin >> T >> X >> value;
12. vector<int> A(T);
13. rep(i, 0, T) cin >> A[i];
14.
15. cout << 0 << " " << value << endl;
16.
17. rep(i, 0, T) {
18. if (abs(A[i] - value) >= X) {
19. value = A[i];
20. cout << i + 1 << " " << value << endl;
21. }
22. }
23.
24. return 0;
25.}
Submission #74957482 - AtCoder Beginner Contest 453atcoder.jp favicon

実装時間: 5 分

コメント

A問題よりも考えることは少ないと思う。