#include<cstdio>
#include<cmath>
int main()
{
int n,m,v,s=0,t=0;
scanf("%d %d",&n,&m);
float x[n];
int b[n][2],p[n],a[n];
for(int i=0;i<n;i++){
scanf("%d %d %d",&b[i][0],&b[i][1],&v);
p[i]=0;
x[i]=b[i][0]+v*sqrt(2.0*b[i][1]/9.8);
for(int j=0;j<i;j++)
if(b[j][1]==b[i][1]&&(b[i][0]-b[j][0])*(x[i]-x[j])<=0){
p[i]++;p[j]++;
}
}
for(int i=0,u;i<n;i++){
scanf("%d",&u);
u=u>p[i]?p[i]:u;
s+=p[i];
if(u>a[i-1]){
for(int j=i;j;j--)
a[j]=a[j-1];
a[0]=u;
}
else
a[i]=u;
}
for(int i=0;i<m;i++)
t+=a[i];
printf("%d",s-t);
return 0;
}
只ac了两个,wa了8个,tle了10个
tle不出预料,但wa挺纳闷。求教大佬。
附一组错解:
in:
10 3
3 7 -3
7 7 8
1 7 -9
-8 7 4
-4 7 -2
1 3 1
-5 7 0
-2 3 9
9 7 5
0 3 7
6 8 10 7 2 5 4 2 8 5
标答: 9
我的输出: 15