結果
問題 | No.2359 A in S ? |
ユーザー |
|
提出日時 | 2023-06-24 18:01:22 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 389 ms / 2,000 ms |
コード長 | 1,151 bytes |
コンパイル時間 | 4,225 ms |
コンパイル使用メモリ | 262,188 KB |
最終ジャッジ日時 | 2025-02-15 02:06:37 |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 18 |
ソースコード
// #define _GLIBCXX_DEBUG#include <bits/stdc++.h>using namespace std;#include <atcoder/all>using namespace atcoder;using ll = long long;#define rep(i,n) for (ll i = 0; i < (n); ++i)using vl = vector<ll>;using vvl = vector<vl>;using P = pair<ll,ll>;#define pb push_back#define int long long#define double long double#define INF (ll) 3e18// Ctrl + Shift + B コンパイル// Ctrl + C 中断// ./m 実行signed main(){int n, m;cin >> n >> m;map<P, vector<P>> xy_lr;rep(i,n){int l, r, x, y;cin >> l >> r >> x >> y;xy_lr[P(x,y)].emplace_back(l,r);}vl v(100010);for(auto [xy, vlr] : xy_lr){auto[x, y] = xy;multiset<int> ls;multiset<int> rs;for(auto [l, r] : vlr) {ls.insert(l); rs.insert(r);}ls.insert(INF);rs.insert(INF);int count = 0;for(int i = y; i <= 100000; i += x){while(*ls.begin() <= i){count++;ls.erase(ls.begin());}while(*rs.begin() < i){count--;rs.erase(rs.begin());}v[i] += count;}}vl a(m);rep(i,m) cin >> a[i];for(auto x : a){cout << v[x] << endl;}}