QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#683551#8340. 3 Sumucup-team3519#RE 0ms3536kbC++202.3kb2024-10-27 21:49:122024-10-27 21:49:12

Judging History

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

  • [2024-10-27 21:49:12]
  • 评测
  • 测评结果:RE
  • 用时:0ms
  • 内存:3536kb
  • [2024-10-27 21:49:12]
  • 提交

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';
        }
        while(1) {
            bool ok = 0;
            for(int j = 0; j < k; j++) {
                if(v[j] >= 10) {
                    ok = 1;
                    assert(i < 4);
                    int tmp = v[j] / 10;
                    v[j] %= 10;
                    v[(j + 1) % k] += tmp;
                }
            }
            if(!ok) break;
        }
        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: 0ms
memory: 3536kb

input:

4 1
0
1
10
17

output:

3

result:

ok 1 number(s): "3"

Test #2:

score: -100
Runtime Error

input:

500 859
7118711592236878297922359501613604144948355616986970837340677671376753603836852811886591300370143151943368529129749813118476151865844255212534355441611481420938483178075143062691345257288242460282715389758789648541099090735875617822348551942134616963557723055980260082230902505269975518146286...

output:


result: