我的代码忽略哪个点呢?数据不能完全通过

问题遇到的现象和发生背景

小明 的学校要求早上 8 点前到达。学校到 小明的家一共有 s(s\le 10000)s(s≤10000) 米,而 小明可以以 v(v<10000)v(v<10000) 米每分钟的速度匀速走到学校。此外在上学路上它还要额外花 10 分钟时间进行垃圾分类。请问为了避免迟到小明 最晚什么时候出门?输出 HH:MM 的时间格式,不足两位时补零。由于路途遥远, 小明 可能不得不提前一天出发,不过不可能提前超过一天。

输入格式
两个正整数 s,v,意思已经在题目中给定。

输出格式
hh:mm 表示最晚离开家的时间(时:分,必须输出两位,不足两位前面补0)

输入输出样例
输入 #1复制
100 99
输出 #1复制
07:48

问题相关代码,请勿粘贴截图

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int s,v,t;
    cin>>s>>v;
    if(s%v==0) t=s/v+10;
    else t=s/v+1+10;
    if(t<8*60) cout<<"0"<<(8*60-t)/60<<":"<<(8*60-t)%60<<endl;//8小时以内的 
    if(8*60-t<0) //超过8小时的 
    {
        if((t-8*60)/60/10) cout<<23-(t-8*60)/60<<":";//23:00 
        else cout<<"0"<<(t-8*60)/60<<":";//09:00
        if((t-8*60)%60/10) cout<<60-(t-8*60)%60<<endl;//"00";
        else cout<<"0"<<60-(t-8*60)%60<<endl;
    }
    return 0;
}
运行结果及报错内容

img

供参考:

#include <stdio.h>
#include <math.h>
int main()
{
    int s, v, time;
    scanf("%d%d", &s, &v);
    time = ceil(s * 1.0 / v) + 10;//向上取整
    if (time <= 480) {
        time = 480 - time;
    }
    else {
        time = (8 + 24) * 60 - time;
    }
    printf("%02d:%02d", time / 60, time % 60);
    return 0;
}