It was really a disaster, I have just solved a single problem, but that one too I submitted it lately. I have submitted it with in 13 minutes and 45 seconds, by that time 180 members have already made a positive submission. and second question I took was Travelling with chef, which is very time taking yet easy question. I don’t even understand why my code is giving wrong answer,
I wrote the code for calculating the quotients of the polynomial with Cramer’s rule of matrices, and after finding the quotients I went to integrate the velocity polynomial to get the distance at a specified time, and then as the question states that chef has started at time 0, I have assumed the integrating constant to be zero. and after printed the result. But it is giving me a wrong answer, I don’t understand it at all.
believe me you shouldn’t go to the question page. I was literally frightened when I saw code of a solution.
But the good news is that my ratings for short contest have increased by 262 points.
here’s my code
#include <stdio.h>
#include <math.h>
double determinant(double *q,double *w,double *e,double *r);
int main()
{
double T3[4],T2[4],T1[4],P[4],X[4],ultimatetime,det,A[4]={1};
int i,j,testcases;
scanf("%d",&testcases);
for(j=0;j<testcases;j++)
{
scanf("%lf", &ultimatetime);
for (i = 0; i < 4; i++)
{
scanf("%lf%lf", &T1[i], &X[i]);
T2[i]=pow(T1[i],2);
T3[i]=pow(T1[i],3);
}
det=determinant(T3,T2,T1,A);
P[0]=determinant(T3,T2,T1,X);
P[1]=determinant(T3,T2,X,A);
P[2]=determinant(T3,X,T1,A);
P[3]=determinant(X,T2,T1,A);
for (i = 0; i < 4; ++i)
{
P[i]/=det;
}
printf("%lf\n", ((P[0]*pow(ultimatetime,4))/4.0)+(P[1]*pow(ultimatetime,3)/3.0)+(P[2]*pow(ultimatetime,2)/2.0)+(P[3]*ultimatetime));
}
return 0;
}
double determinant(double *q,double *w,double *e,double *r)
{
return (*q)*(*w+1)*(*e+2)*(*r+3)-(*q)*(*w+1)*(*e+3)*(*r+2)-(*q)*(*e+1)*(*w+2)*(*r+3)+(*q)*(*e+1)*(*w+3)*(*r+2)+(*q)*(*r+1)*(*w+2)*(*e+3)-(*q)*(*r+1)*(*w+3)*(*e+2)-(*q)*(*q+1)*(*e+2)*(*r+3)+(*q)*(*q+1)*(*e+3)*(*r+2)+(*q)*(*e+1)*(*q+2)*(*r+3)-(*q)*(*e+1)*(*q+3)*(*r+2)-(*q)*(*r+1)*(*q+2)*(*e+3)+(*q)*(*r+1)*(*q+3)*(*e+2)+(*e)*(*q+1)*(*w+2)*(*r+3)-(*e)*(*q+1)*(*w+3)*(*r+2)-(*e)*(*w+1)*(*q+2)*(*r+3)+(*e)*(*w+1)*(*q+3)*(*r+2)+(*e)*(*r+1)*(*q+2)*(*w+3)-(*e)*(*r+1)*(*q+3)*(*w+2)-(*q)*(*w+1)*(*r+2)*(*e+3)+(*q)*(*w+1)*(*r+3)*(*e+2)+(*q)*(*r+1)*(*w+2)*(*e+3)-(*q)*(*r+1)*(*w+3)*(*e+2)-(*q)*(*e+1)*(*w+2)*(*r+3)+(*q)*(*e+1)*(*w+3)*(*r+2);
}