当前位置: 首页 > news >正文

CodeForces - 1692D

Victor has a 24-hour clock that shows the time in the format "HH:MM" (00 ≤≤ HH ≤≤ 23, 00 ≤≤ MM ≤≤ 59). He looks at the clock every xx minutes, and the clock is currently showing time ss.

How many different palindromes will Victor see in total after looking at the clock every xx minutes, the first time being at time ss?

For example, if the clock starts out as 03:12 and Victor looks at the clock every 360360 minutes (i.e. every 66 hours), then he will see the times 03:12, 09:12, 15:12, 21:12, 03:12, and the times will continue to repeat. Here the time 21:12 is the only palindrome he will ever see, so the answer is 11.

A palindrome is a string that reads the same backward as forward. For example, the times 12:21, 05:50, 11:11 are palindromes but 13:13, 22:10, 02:22 are not.

Input

The first line of the input contains an integer tt (1≤t≤1001≤t≤100) — the number of test cases. The description of each test case follows.

The only line of each test case contains a string ss of length 55 with the format "HH:MM" where "HH" is from "00" to "23" and "MM" is from "00" to "59" (both "HH" and "MM" have exactly two digits) and an integer xx (1≤x≤14401≤x≤1440) — the number of minutes Victor takes to look again at the clock.

Output

For each test case, output a single integer — the number of different palindromes Victor will see if he looks at the clock every xx minutes starting from time ss.

Examples

InputcopyOutputcopy
6
03:12 360
00:00 1
13:22 2
15:15 10
11:11 1440
22:30 27
1
16
10
0
1
1
#include<bits/stdc++.h>
using namespace std;
#define int long longsigned main(){int t;cin>>t;while(t--){int h,f,k;char c;string x;cin>>x>>k;//输入时间 ,每次相加分数 h=(x[0]-'0')*10+(x[1]-'0');//求小时 f=(x[3]-'0')*10+(x[4]-'0');//求分 int h1=h,f1=f;int sum=0,p=0;while((h1!=h||f1!=f)||(p==0)){//循环直到时间重新与输入时间相等 p++;int q=f1+k;//求分数相加和 h1=(h1+q/60)%24,f1=q%60;//更新时间 string z=to_string(h1);//把时间转换为字符串 if(z.size()<2){//如果字符串只有一位就在前面+‘0’ z='0'+z;}string c=to_string(f1);if(c.size()<2){c='0'+c;}string ss=z+":"+c;string dd=ss;reverse(dd.begin(),dd.end());//反转字符串 if(ss==dd){//比较是否为回文串 sum++;}}cout<<sum<<endl;}}
这样可以吗

 

http://www.dtcms.com/a/210076.html

相关文章:

  • 打卡第27天:函数的定义与参数
  • C++ STL6大组件
  • Linux:再谈进程地址空间
  • 数值分析(电子和通信类)
  • 嵌入式工程师常用软件
  • 服务器硬盘虚拟卷的处理
  • Kotlin MultiPlatform 跨平台版本的记账 App
  • C语言 动态内存管理(4)
  • 安卓开发用到的设计模式(2)结构型模式
  • Spark MLlib的运维与管理
  • 数据结构第七章(五)-散列表
  • 【算法】力扣体系分类
  • 深入理解计算机内存:物理存储器、地址空间与程序眼中的“内存地址”
  • Spring Boot微服务架构(三):Spring Initializr创建CRM项目
  • 生成图片验证码
  • python中Web框架Flask vs FastAPI 对比分析
  • 自然语言处理核心技术:词向量(Word Embedding)解析
  • PCIE 4.0 vs PCIE 5.0固态硬盘——区别、科普与选购场景全解析
  • ARM笔记-ARM处理器及系统结构
  • 跨平台兼容Setup PDF 编辑器页面合并拆分OCR 识别支持多语言
  • day26CSS-Sass、Stylus、Less
  • 什么是深度学习中的层次分类问题?
  • leetcode 862. 和至少为 K 的最短子数组
  • 软件开发MVC三层架构杂谈
  • C# 异步方法中缺少 `await` 运算符的隐患与解决方案
  • 计算机网络(3)——传输层
  • vue+threeJs 创造镂空管状
  • C# 深入理解类(析构函数和this关键字)
  • 集群聊天服务器学习 配置开发环境(VScode远程连接虚拟机Linux开发)(2)
  • OSPF ABR汇总路由