求助CF1493B,样例都过不了
  • 板块题目总版
  • 楼主_caiji_
  • 当前回复3
  • 已保存回复3
  • 发布时间2021/3/7 07:28
  • 上次更新2023/11/5 02:22:00
查看原帖
求助CF1493B,样例都过不了
390033
_caiji_楼主2021/3/7 07:28
#include <cstdio>
using namespace std;
int rmb[110]={0,1,5,-1,-1,2,-1,-1,8,-1};//存放每个数反过来,如rmb[15]=21,如果非法是-1
int f(int num){
    int ret=0;
    while(num){
        int tmp=num%10;
        if(rmb[tmp]==-1) return -1;
        ret=ret*10+rmb[tmp];
        num/=10;
    }
    return ret;
}
void init(){
    for(int i=10;i<=100;i++) rmb[i]=f(i);//生成rmb
}
int h,m,a,b;
int mian(){
    scanf("%d%d",&h,&m);
    scanf("%02d:%02d",&a,&b);
    //printf("%d %d\n",a,b);
    for(int i=a;i<h;i++){
        for(int j=(i==a?b:0);j<m;j++){//枚举时间
            if(rmb[i]==-1||rmb[j]==-1) continue;//非法就下一个
            if(rmb[j]>=h||rmb[i]>=m) continue;//超出时间下一个
            printf("%02d:%02d",rmb[j],rmb[i]);//输出走人
            return 0;
        }
    }
    return printf("00:00"),0;//枚举到最后输出00:00
}
int main(){
    int T;
    scanf("%d",&T);
    init();
    //for(int i=1;i<=100;i++) printf("%d %d\n",i,rmb[i]);
    while(T--)
        mian(),puts("");
    return 0;
}

请问这个代码有什么问题吗?连样例都过不了,是我理解错题意了吗?

2021/3/7 07:28
加载中...