Программа должна проводить вычисление, но выдаёт не тот результат, который ожидается.
#include<stdio.h>
#include<stdlib.h>
#include<stdbool.h>
#include <math.h>
int small(int v[], int size){
int result=0;
for(int i=0; i<size; i++){
if(v[i]<result) result=v[i];
}
return result;
}
bool is_high(long int mis,int t, int s[], int v[], int num_raws){
float time=0;
for(int i=0; i<num_raws; i++){
if(v[i]+(mis/10000000)<=0) return true;
time+=s[i]/(v[i]+(mis/10000000));
}
if(time>=t) return true;
return false;
}
int main(){
int time, num_raws;
scanf("%d %d", &num_raws, &time);
int v[num_raws];
int s[num_raws];
for(int i=0; i<num_raws; i++) scanf("%d %d", &s[i],&v[i]);
int mis=-small(v, num_raws)+1;
for(int i=0; i<=7;i++){
while(is_high(mis, time, s, v, num_raws)){
mis+=pow(10,7-i);
}
mis-=pow(10,7-i);
}
printf("%f\n", (double)mis/10000000);
return 0;
}
А вот вводимые данные. Первое число количество рядочков. Второе время езды, каждый следующий содержит расстояние и скорость с которым ехал водитель. Загвоздка в том, что в скорости везде отклонение на некую константу, которую и надо узнать.
4 10
5 3
2 2
3 6
3 1
Буду очень благодарен, если поможете, а то сроки горят.