为什么还有俩TLE!!!!!?!?!?
查看原帖
为什么还有俩TLE!!!!!?!?!?
1237323
zhutongxuan楼主2024/1/1 14:49

我都用上__int128了?!

#include<iostream>
#include<cstdio>
using namespace std;

long long num[10] = {6,2,5,5,4,5,6,3,7,6};

void print(__int128 s){
	if(!s){
		return ;
	}
	print(s / 10);
	putchar(s % 10 + '0');
}

__int128 read(){
	__int128 s = 0;
	char ch = getchar();
	while(ch >= '0' && ch <= '9'){
		s = s * 10 + ch - '0';
		ch = getchar();
	}
	return s;
}

bool xingyun(__int128 n,__int128 m){
	__int128 x = 0;
	__int128 tt = n;
	while(tt){
		x += num[tt % 10];
		tt /= 10;
	}
	for(__int128 i = n + 1;i <= m;i++){
		__int128 t = i;
		__int128 sum = 0;
		while(t){
			sum += num[t % 10];
			t /= 10;
		}
		if(sum != x){
			return 0;
		}
	}
	return 1;
}

int main(){
	__int128 n,m,maxx = 1;
	n = read();
	m = read();
	for(__int128 i = n;i < m;i++){
		for(__int128 j = i + 1;j <= m;j++){
			if(xingyun(i,j) == 1){
				maxx = max(maxx,j - i + 1);
			}
		}
	}
	print(maxx);
	cout<<endl;
	return 0;
}
2024/1/1 14:49
加载中...