/******************************************************************************
Online C Compiler.
Code, Compile, Run and Debug C program online.
Write your code in this editor and press "Run" button to compile and execute it.
*******************************************************************************/
#include <stdio.h>
#include <inttypes.h>
#define min(a,b) (((a)<(b))?(a):(b))
#define max(a,b) (((a)>(b))?(a):(b))
uint8_t scaleSpeed(uint8_t sp, uint8_t dx, uint8_t dmax) {
if ((dx == 0) || (sp == 255)) {
return sp;
} else {
uint16_t ret = sp % 100;
if (sp < 100) {
ret = ret * 8;
} else if (sp < 200) {
ret = ret * 4;
} else {
}
ret = ret * dmax / dx;
if (ret < 55) {
return ret + 200;
} else {
ret = ret / 2;
if (ret < 100) {
return ret + 100;
} else {
ret = ret / 4;
return max(ret, 99);
}
}
}
}
int main()
{
printf("20 %d\n", scaleSpeed(4, 40, 80));
return 0;
}