求助第三点,本地测试和答案一样,提交上去就 WA 掉了
查看原帖
求助第三点,本地测试和答案一样,提交上去就 WA 掉了
112917
Eason_AC楼主2020/10/18 17:38

RT,证明:

提交记录

有哪位大佬看看是哪里出了问题吗?qwq

#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cmath>
#include <iostream>
#define ll long long
#define ull unsigned long long
#define _for(i, a, b) for(int (i) = (a); (i) <= (b); ++(i))
#define _rep(i, a, b) for(int (i) = (a); (i) >= (b); --(i))
#define _spfor(i, a, b, c) for(int (i) = (a); (i) <= (b); (i) += (c))
#define _sprep(i, a, b, c) for(int (i) = (a); (i) >= (b); (i) -= (c))
#define _forll(i, a, b) for(ll (i) = (a); (i) <= (b); ++(i))
#define _repll(i, a, b) for(ll (i) = (a); (i) >= (b); --(i))
#define _spforll(i, a, b, c) for(ll (i) = (a); (i) <= (b); (i) += (c))
#define _sprepll(i, a, b, c) for(ll (i) = (a); (i) >= (b); (i) -= (c))
using namespace std;

inline void getint(int& x) {
	int f = 1; x = 0;
	char c = getchar();
	while(!isdigit(c)) {if(c == '-') f = -1; c = getchar();}
	while(isdigit(c)) {x = x * 10 + c - '0'; c = getchar();}
	x *= f;
}
inline void getll(ll &x) {
	ll f = 1; x = 0;
	char c = getchar();
	while(!isdigit(c)) {if(c == '-') f = -1; c = getchar();}
	while(isdigit(c)) {x = x * 10 + c - '0'; c = getchar();}
	x *= f;
}
inline void writeint(int& x) {
	if(!x) {printf("0"); return;}
	else if(x < 0) printf("-");
	int tmp = x < 0 ? -x : x, digit[17] = {0};
	while(tmp) {digit[++digit[0]] = tmp % 10; tmp /= 10;}
	_rep(i, digit[0], 1)	printf("%d", digit[i]);
}
inline void writell(ll& x) {
	if(!x) {printf("0"); return;}
	else if(x < 0) printf("-");
	ll tmp = x < 0 ? -x : x; int digit[27] = {0};
	while(tmp) {digit[++digit[0]] = tmp % 10; tmp /= 10;}
	_rep(i, digit[0], 1)	printf("%d", digit[i]);
}

ll ans, n, m;

ll digitnum(ll x) {
	ll p = x, ans = 0;
	while(p) {
		ans++;
		p /= 10;
	}
	return ans;
}
ll turn(ll x) {
	ll p = x, ans = 0, digit[27] = {0};
	while(p) {
		digit[++digit[0]] = p % 10;
		p /= 10;
	}
	_for(i, 1, digit[0])	ans += digit[i] * (ll)pow(10, digit[0] - i);
	return ans;
}

int main() {
	//This program is written in Windows 10 by Eason_AC
	getll(n), getll(m);
	_forll(i, 1, n) {
		ll len = digitnum(i), rev = turn(i);
		ll tmp = ((ll)pow(10, len) * i + rev) % m;
		ans = (ans + tmp % m) % m;
	}
	writell(ans);
	return 0;
}
2020/10/18 17:38
加载中...