TLE了两个点,一个1.01,一个1.04,难绷。
#include <bits/stdc++.h>
using namespace std;
long double p;
int x,y,ans[15];
int main(){
cin>>p;
x = (int) p;
if((long double)x ==p ){
++ans[x];
for(int i = 1 ; i<=5 ; i++) cout<<ans[i]<<" ";
return 0;
}
else{
int y=x+1;
long double k0=(long double)x,k1=k0+1,now=(k0+k1)/2;
int sum1=1,sum2=1;
while(now!=p){
if(now<p) ++sum2;
else ++sum1;
now=(k0*sum1+k1*sum2)/(sum1+sum2);
}
ans[x]+=sum1,ans[y]+=sum2;
for(int i = 1 ; i<=5 ; i++) cout<<ans[i]<<" ";
}
return 0;
}