https://www.acwing.com/activity/content/1834/
4422. 智力测试【签到】
#include<bits/stdc++.h>
using namespace std;
int main(void)
{
int n; cin>>n;
int cnt=0;
for(int i=1;;i++)
{
if(n<i*(i+1)/2) break;
cnt++,n-=(i+1)*i/2;
}
cout<<cnt;
return 0;
}
4423. 最近距离【前缀和】
#include<bits/stdc++.h>
using namespace std;
typedef long long int LL;
const int N=1e5*3+10;
LL n,a[N],r[N],l[N];
int main(void)
{
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i];
memset(l,0x3f,sizeof l);
memset(r,0x3f,sizeof r);
for(int i=n;i>=1;i--)
{
if(a[i]==0) r[i]=i;
else r[i]=r[i+1];
}
for(int i=1;i<=n;i++)
{
if(a[i]==0) l[i]=i;
else l[i]=l[i-1];
}
for(int i=1;i<=n;i++)
cout<<min(abs(i-l[i]),abs(i-r[i]))<<" ";
return 0;
}
4424. 等式【解方程】
#include<bits/stdc++.h>
using namespace std;
int main(void)
{
int t; cin>>t;
while(t--)
{
int n; cin>>n;
int temp=n*n-4*n;
if(temp<0)
{
puts("N");
continue;
}
if(n==0)
{
puts("Y 0 0");
continue;
}
printf("Y %.10lf %.10lf\n",(n-sqrt(temp*1.0))/2.0,(n+sqrt(temp*1.0))/2.0);
}
return 0;
}