結果
問題 |
No.2408 Lakes and Fish
|
ユーザー |
|
提出日時 | 2023-08-11 23:52:00 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 174 ms / 2,000 ms |
コード長 | 890 bytes |
コンパイル時間 | 591 ms |
コンパイル使用メモリ | 72,272 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-11-18 19:39:20 |
合計ジャッジ時間 | 3,997 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 19 |
ソースコード
#include <iostream> #include <vector> #include <algorithm> int absz( const int x ) { return x > 0 ? x : -x; } int main( void ) { int N = 1, M = 1; std::cin >> N >> M; std::vector<int> L( N ); for (int i = 0;i < N;i++) { std::cin >> L[i]; } int F = 0, B = 0, W = 0; long long int sum = 0; for (int i = 0; i < M; i++) { std::cin >> F >> B >> W; auto l = std::lower_bound( L.begin(), L.end(), F ); auto l2 = l; if (l == L.end()) --l; if (l2 != L.begin()) --l2; int d1 = absz( *l - F ); int d2 = absz( *l2 - F ); int nearest = d1 > d2 ? d2 : d1; if (nearest < 1) { sum += W; } else if (nearest < W - B) { sum += W - nearest; } else { sum += B; } } std::cout << sum; return 0; }