Canales

Enlace: https://ac.nowcoder.com/acm/contest/11424/C
Fuente: Niuke

Descripción del título A
Nancy le gusta estudiar y mirar televisión.
Para saber cuánto tiempo puede mirar un programa, supongamos que el programa comienza en el tiempo 1 y continúa en el tiempo 6 \ times 10 ^ {100} 6 × 10
100
. Cada programa tiene una duración de 50 momentos, y habrá 10 momentos de tiempo publicitario entre el programa y el programa.
Sin embargo, Nancy está muy ocupada, desde t_1t
1 comienza a ver el tiempo de visualización hasta t_2t 2 momento, por favor ayude a calcular cuánto tiempo puede disfrutar de los programas de televisión. Descripción de entrada: el número de líneas: dos enteros cada fila t_1t . 1 y t_2t 2 . Los datos satisfacen:. 1 \ Leq T_l \ Leq T_2 \ Leq 18 es 10 ^ {} 1 ≦ T. 1 ≦ T 2 ≦ 10 18 es . Descripción de la salida: Varias líneas: un número entero en cada línea, indicando el número de veces que se puede degustar el programa de TV. Ejemplo 1 Copia de entrada 1 61 Copia de salida 51 Ejemplo 2
































Entrada
Copia
116969978 507978500
180480072 791550396
139567120 655 243 745
1,470545 millones 167.613.747
57.644034 millones 176077476
44676 56984808
215706822 369042088
108368065 320914746
salida
Copia
325840433
509225275
429730516
138 452 673
98694.536 mil
47450113
127779387
177122232

Debido a que el título dice que comience a contar desde 1, pero hay muchos problemas de límites de esta manera, primero reducimos todo en 1, de modo que sea discreto comenzar a contar desde 0, y luego 1 ---- 59 es un grupo, y así sucesivamente.

#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
#include <set>
#include <string>
#include <queue>
#include <map>
#include <stack>
#include <map>
#include <unordered_map>
#include <vector>
#include <cmath>
#include <ext/rope>
#include <bits/stdc++.h> 

using namespace std;

#define gt(x) x = read()
#define int long long
#define ios ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);

const int mod = 1e9 + 7;
const int PP = 131;

inline int read(int out = 0)
{
    
    
    char c;
    while((c=getchar()) < 48 || c > 57);
    while(c >= 48 && c <= 57) out=out*10+c-48,c=getchar();
    return out; 
}

const int N = 1e5 + 10;
const int M = 1e6 + 10;

signed main(){
    
    
	int t1, t2;
	while(~scanf("%lld%lld", &t1, &t2)){
    
    
        t1 --;
        t2 --;
			int ans = 0;
	int temp = t1 % 60;
//	cout << temp << endl;
	temp = (60 - temp);
//	cout << temp << endl;
	if (temp >= 10){
    
    
		ans += (temp - 10);
	}
//	cout << ans << endl;
	t1 += temp;
	//cout << t1 << endl;
	temp = (t2 % 60);
	//cout << temp << endl;
	if (temp >= 49)  ans += 50;
	else    ans += temp + 1;
	//cout << ans << endl;
	t2 -= temp;
//	cout << t2 << endl;
	temp = (t2 - t1) / 60;
	//cout << temp << endl;
	ans += (temp * 50);
//	cout << ans << endl;
	
	cout << ans  << endl;	
	}
	
	return 0;
}

Supongo que te gusta

Origin blog.csdn.net/qq_45772483/article/details/112718957
Recomendado
Clasificación