code i tried around 5 of hours but didn’t succeded:
#include<stdio.h>
#include<math.h>
int main()
{
int t,n,i,result,p,sum=0;
while(scanf("%d %d",&t,&n)==2)
{
for(i=0; i<n; i++)
{
scanf("%d",&p);
sum=sum+p;
}
//if(sum<=24)
double check=t/(0.5*t);
double divcheck=(double)t/sum;
printf("%lf\n",check);
printf("%lf\n",divcheck);
if(check==divcheck)
{
result=t/sum;
if(result==1)
{
printf("Project will finish within %d day.\n",result);
}
else
{
printf("Project will finish within %d days.\n",result);
}
}
else if(sum<t)
{
if(sum==check)
{
result=t/sum;
printf("Project will finish within %d days.\n",result);
}
else
{
result=t/sum;
printf("Project will finish within %d days.\n",result+1);
}
}
else if(sum==t)
{
result=t/sum;
printf("Project will finish within %d day.\n",result);
}
else if(sum>t)
{
result=t/sum;
printf("Project will finish within %d day.\n",result+1);
}
sum=0;
}
return 0;
}
after checking one solution in github repo found the logic and impelmented in my own:
code:
#include<stdio.h>
int main()
{
int t,n,p,i,result,sum;
while(scanf("%d %d",&t,&n)!=EOF)
{
sum=0;
for(i=0; i<n; i++)
{
scanf("%d",&p);
sum=sum+p;
}
result=0;
if(t%sum==0) //mod diyei onek somosshar somadhan hoye jay eta sobshomoy mathay rakhte hobe
{
result=t/sum; //if it is divisible then we can just divide it to get the result as per test case
}
else
{
result=(t/sum)+1; //as we are finding point value so we need to add 1 to get the accurate integer
}
if(result==1)
{
printf("Project will finish within 1 day.\n"); //as per output
}
else
{
printf("Project will finish within %d days.\n",result); //as per output
}
}
return 0;
}
uDebug also helped me for critical case:
https://www.udebug.com/DS/4