結果
| 問題 |
No.2462 七人カノン
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2023-09-08 23:00:43 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 974 bytes |
| コンパイル時間 | 2,008 ms |
| コンパイル使用メモリ | 178,072 KB |
| 実行使用メモリ | 813,952 KB |
| 最終ジャッジ日時 | 2024-06-26 16:17:52 |
| 合計ジャッジ時間 | 9,341 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | WA * 3 |
| other | WA * 5 TLE * 5 MLE * 1 -- * 12 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
const int INF=100000;
int main(){
int n,q;
cin >> n >> q;
//演奏者数いもす
vector<int> a(INF+1,0);
//各演奏者いもす
vector<vector<int>> b(n,vector<int>(INF+1,0));
while(q--){
int i,s,t;
cin >> i >> s >> t;
i--;
b[i][s]++;
b[i][t]--;
a[s]++;
a[t]--;
}
//目立ち度
vector<double> M(n);
//演奏者数
vector<int> A(INF+1,0);
A[0]=a[0];
//演奏中
vector<vector<bool>> B(n,vector<bool>(INF+1,false));
for(int j=0;j<n;j++){
B[j][0]=(b[j][0]>0);
if(A[0]){
M[j]+=(B[j][0]?1.0:0.0)/A[0];
}
}
for(int k=1;k<=INF;k++){
//演奏者数
A[k]=A[k-1]+a[k];
for(int j=0;j<n;j++){
if(b[j][k]>0){
B[j][k]=true;
}else if(b[j][k]<0){
B[j][k]=false;
}else{
B[j][k]=B[j][k-1];
}
if(A[k]){
M[j]+=(B[j][k]?1.0:0.0)/A[k];
}
}
}
cout << fixed << setprecision(14) << endl;
for(int j=0;j<n;j++){
cout << M[j] << endl;
}
return 0;
}