結果
問題 |
No.2462 七人カノン
|
ユーザー |
|
提出日時 | 2023-09-08 22:16:48 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
TLE
|
実行時間 | - |
コード長 | 953 bytes |
コンパイル時間 | 2,220 ms |
コンパイル使用メモリ | 187,408 KB |
実行使用メモリ | 25,120 KB |
最終ジャッジ日時 | 2024-06-26 15:22:05 |
合計ジャッジ時間 | 5,744 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 10 TLE * 1 -- * 12 |
ソースコード
#include <bits/stdc++.h> #include <iterator> using namespace std; #define rep(i, n) for(int i=0; i<n; i++) #define debug 1 using ll = long long; using ld = long double; const int mod = 998244353; const double pi = atan2(0, -1); #include <time.h> #include <chrono> int main() { int N, Q; cin >> N >> Q; vector<double> ans(N + 1, 0); set<int> list; map<int, vector<int>> mp; unordered_set<int> play; int sum = 0; int now = 0; rep(i, Q) { int p, s, t; cin >> p >> s >> t; list.insert(s); list.insert(t); mp[s].push_back(p); mp[t].push_back(p); } for (int time : list) { if (sum >= 1) { for (int x : play) { ans[x] += ((double)time - (double)now) / (double)sum; } } now = time; for (int x : mp[time]) { if (play.count(x)) { play.erase(x); sum--; } else { play.insert(x); sum++; } } } for (int i = 1; i <= N; i++) { cout << fixed << setprecision(10); cout << ans[i] << endl; } }