提出 #69387702
ソースコード 拡げる
#include<bits/stdc++.h>
using namespace std;
int n;
double L;
struct node{
long double t,v;
}q[500005];
int hd=0,tl=-1;
long double sumv=0,sumvt=0;
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin>>n>>L;
for(int i=1;i<=n;i++){
long double t,v;
cin>>t>>v;
q[++tl]={t,v};
sumv+=v;
sumvt+=t*v;
while(hd<=tl&&sumv>L){
if(sumv-q[hd].v<L){
sumvt-=(sumv-L)*q[hd].t;
q[hd].v-=sumv-L;
sumv=L;
break;
}else{
sumvt-=q[hd].v*q[hd].t;
sumv-=q[hd].v;
hd++;
}
}
while(hd<=tl-1&&q[tl].t<=q[tl-1].t){
long double sv=q[tl].v+q[tl-1].v;
q[tl-1].t=(q[tl-1].t*q[tl-1].v+q[tl].v*q[tl].t)/sv;
q[tl-1].v+=q[tl].v;
tl--;
}
// for(int i=hd;i<=tl;i++){
// cout<<"dbg::"<<q[i].t<<" "<<q[i].v<<"\n";
// }
printf("%.7Lf\n",sumvt/L);
}
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | F - Dam |
| ユーザ | george0929 |
| 言語 | C++ 20 (gcc 12.2) |
| 得点 | 900 |
| コード長 | 851 Byte |
| 結果 | AC |
| 実行時間 | 363 ms |
| メモリ | 25136 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 900 / 900 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | 00-00.txt, 00-01.txt, 00-02.txt |
| All | 00-00.txt, 00-01.txt, 00-02.txt, 01-00.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| 00-00.txt | AC | 1 ms | 3792 KiB |
| 00-01.txt | AC | 1 ms | 3852 KiB |
| 00-02.txt | AC | 1 ms | 3656 KiB |
| 01-00.txt | AC | 358 ms | 23740 KiB |
| 01-01.txt | AC | 359 ms | 9456 KiB |
| 01-02.txt | AC | 353 ms | 24432 KiB |
| 01-03.txt | AC | 359 ms | 16680 KiB |
| 01-04.txt | AC | 363 ms | 9332 KiB |
| 01-05.txt | AC | 360 ms | 23724 KiB |
| 01-06.txt | AC | 360 ms | 9492 KiB |
| 01-07.txt | AC | 360 ms | 24800 KiB |
| 01-08.txt | AC | 353 ms | 16796 KiB |
| 01-09.txt | AC | 361 ms | 9376 KiB |
| 01-10.txt | AC | 356 ms | 25124 KiB |
| 01-11.txt | AC | 357 ms | 25136 KiB |
| 01-12.txt | AC | 358 ms | 25104 KiB |
| 01-13.txt | AC | 357 ms | 25124 KiB |