QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#683548#8340. 3 Sumucup-team3519#RE 222ms3808kbC++202.3kb2024-10-27 21:48:172024-10-27 21:48:18

Judging History

你现在查看的是最新测评结果

  • [2024-10-27 21:48:18]
  • 评测
  • 测评结果:RE
  • 用时:222ms
  • 内存:3808kb
  • [2024-10-27 21:48:17]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;
#define V vector
#define all0(x) (x).begin(),(x).end()
#define all1(x) (x).begin()+1,(x).end()
#define pb push_back
#define fi first
#define se second
#define lb lower_bound
#define ub upper_bound
#define cin std::cin
#define cout std::cout
typedef long long LL;
typedef pair<int, int> pi;
typedef pair<LL, LL> pl;

//const int MN = 2e5 + 20;
const int INF = 2e9 + 1000;
const LL INFLL = 8e18 + 1000;
mt19937 mrand(chrono::steady_clock().now().time_since_epoch().count());
//模板区域~~~~~~~

//模板结束~~~~~~~
const LL mod = 444445555566666677;

LL MOD(LL x) {
    if(x < 0) x += mod;
    if(x >= mod) x -= mod;
    return x;
}
LL veryMOD(LL x) {
    while(x < 0) x += mod;
    while(x >= mod) x -= mod;
    return x;
}
LL mul(LL x, LL y) {
    return (__int128_t)x * y % mod;
}

void solve() {
    int n, k; cin >> n >> k;
    LL M = 0;
    for(int i = 1; i <= k; i++) {
        M = MOD(mul(M, 10) + 9);
    }
    V<LL> a(n + 1);
    for(int i = 1; i <= n; i++) {
        string s; cin >> s;
        V<int> v(k);
        reverse(all0(s));
        for(int i = 0; i < s.size(); i++) {
            v[i % k] += s[i] - '0';
        }
        for(int i = 1; i <= 4; i++) {
            for(int j = 0; j < k; j++) {
                if(v[j] >= 10) {
                    assert(i < 4);
                    int tmp = v[j] / 10;
                    v[j] %= 10;
                    v[(j + 1) % k] += tmp;
                }
            }
        }
        LL now = 0;
        LL cur = 1;
        for(int i = 0; i < k; i++) {
            now = MOD(now + mul(cur, v[i]));
            cur = mul(cur, 10);
        }
        a[i] = now;
    }
    // cout << M << endl;
    LL ans = 0;
    for(int i = 1; i <= n; i++) {
        for(int j = i; j <= n; j++) {
            for(int k = j; k <= n; k++) {
                LL tmp = veryMOD(a[i] + a[j] + a[k]);
                if(tmp == 0 || tmp == M || tmp == MOD(M + M) || tmp == veryMOD(M * 3)) {
                    ans++;
                }
            }
        }
    }
    cout << ans << endl;

}

int32_t main() {
    ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
    int t = 1;
    // cin >> t;
    while (t--) 
    solve();
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 1ms
memory: 3796kb

input:

4 1
0
1
10
17

output:

3

result:

ok 1 number(s): "3"

Test #2:

score: 0
Accepted
time: 94ms
memory: 3808kb

input:

500 859
7118711592236878297922359501613604144948355616986970837340677671376753603836852811886591300370143151943368529129749813118476151865844255212534355441611481420938483178075143062691345257288242460282715389758789648541099090735875617822348551942134616963557723055980260082230902505269975518146286...

output:

0

result:

ok 1 number(s): "0"

Test #3:

score: 0
Accepted
time: 222ms
memory: 3804kb

input:

500 17336
11871159223687829792235950161360414494835561698697083734067767137675360383685281188659130037014315194336852912974981311847615186584425521253435544161148142093848317807514306269134525728824246028271538975878964854109909073587561782234855194213461696355772305598026008223090250526997551814628...

output:

0

result:

ok 1 number(s): "0"

Test #4:

score: -100
Runtime Error

input:

500 1
751324443898124078584847834484321089092662321556147445230263526014359393841194947303407593948729802551881289193716611867931891257925091769456350249725997883453296895094445731130479434019358742162771547784250401546380268386074363779242500860317042151185119666027858022664683818314351285215150806...

output:


result: