QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#350148#8340. 3 Sumucup-team992AC ✓481ms71436kbC++204.4kb2024-03-10 14:43:332024-10-13 18:48:44

Judging History

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

  • [2024-10-13 18:48:44]
  • 管理员手动重测本题所有得分≥97分的提交记录
  • 测评结果:AC
  • 用时:481ms
  • 内存:71436kb
  • [2024-09-20 10:20:37]
  • 自动重测本题所有获得100分的提交记录
  • 测评结果:100
  • 用时:484ms
  • 内存:71388kb
  • [2024-09-20 10:20:30]
  • hack成功,自动添加数据
  • (/hack/848)
  • [2024-03-18 21:48:17]
  • 自动重测本题所有获得100分的提交记录
  • 测评结果:100
  • 用时:477ms
  • 内存:71312kb
  • [2024-03-18 21:48:05]
  • hack成功,自动添加数据
  • (/hack/579)
  • [2024-03-18 21:45:42]
  • 自动重测本题所有获得100分的提交记录
  • 测评结果:100
  • 用时:475ms
  • 内存:71340kb
  • [2024-03-18 21:45:33]
  • hack成功,自动添加数据
  • (/hack/578)
  • [2024-03-10 14:43:33]
  • 评测
  • 测评结果:100
  • 用时:474ms
  • 内存:71336kb
  • [2024-03-10 14:43:33]
  • 提交

answer

#include <bits/stdc++.h>

using namespace std;

#define ar array
#define ll long long
typedef int uci;
#define int long long
#define F first
#define S second
typedef complex<double> cd;

seed_seq seq{
    (uint64_t) chrono::duration_cast<chrono::nanoseconds>(chrono::high_resolution_clock::now().time_since_epoch()).count(),
    (uint64_t) __builtin_ia32_rdtsc(),
    (uint64_t) (uintptr_t) make_unique<char>().get()
};
mt19937 rng(seq);
// mt19937_64 lrng(seq);

struct debugger{
    template <typename T>
    debugger& operator<<(T &a){
        #ifdef DEBUG
            cerr << a;
        #endif
        return *this;
    }
    template <typename T>
    debugger& operator<<(T &&a){
        #ifdef DEBUG
            cerr << a;
        #endif
        return *this;
    }
} deb;

const double PI = acos(-1.0);
const int MAX_N = 1e5 + 1;
const int MOD = 1e9 + 7;
const int INF = 1e9;
const ll LINF = 1e18;

//! function insert

//THINK FIRST, CODE SECOND
//DON'T GET STUCK ON ONE STRATEGY
//CALM DOWNNN FOR ONCE IN YOUR LIFE
//REDUCE
//COUGH E??!?!?!! O.O
//uwu i see you ryan

bool check(int val, int m){
    return val == 0 || val == m || val == m*2;
}

void solve() {
    int n, k;
    cin >> n >> k;

    const int num = 10;
    vector<int> vals{100000721,	100000793, 	100000799,	100000801,	100000837,	100000841,	100000853,	10000089, 100000921,100000937};
    vector<int> ms(num);
    for(int j{}; j < k; ++j){
        for(int i{}; i < num; ++i){
            ms[i] *= 10;
            ms[i] += 9;
            ms[i] %= vals[i];
        }
    }
    vector<vector<int>> a(n, vector<int>(k+1));
    for(int i{}; i < n; ++i){
        string s;
        cin >> s;
        reverse(s.begin(), s.end());

        for(int j{};j < s.size(); ++j){
            a[i][j%k] += s[j]-'0';
        }
        while(a[i][0]>9) {
            for(int j=0; j<k; ++j) a[i][j+1]+=a[i][j]/10,a[i][j]%=10;
            a[i][0]+=a[i][k]; a[i][k]=0;
        }
        /*
        for(int j{}; j < k-1; ++j){
            a[i][j+1] += a[i][j]/10;
            a[i][j] = a[i][j]%10;
        }

        while(a[i][k-1] >= 10){
            int carry = a[i][k-1]/10;
            a[i][k-1] %= 10;

            a[i][0] += carry;
            for(int j{}; j < k-1; ++j){
                if(a[i][j] < 10)
                    break;
                a[i][j+1] += a[i][j]/10;
                a[i][j] %= 10;
            }
        }
        */
    }
    vector<ar<int, num>> c(n);
    for(int i{}; i < n; ++i){
        for(int j = k-1; j >= 0; --j){
            for(int o{}; o < num; ++o){
                c[i][o] *= 10;
                c[i][o] += a[i][j];
                c[i][o] %= vals[o];
            }
        }
    }

    int out{};
    for(int i{}; i < n; ++i){
        for(int j = i; j < n; ++j){
            for(int k = j; k < n; ++k){
                int tot{};
                for(int o{}; o < num; ++o){
                    int v = (c[i][o]+c[j][o]+c[k][o])%vals[o];
                    if(v == 0 || v == ms[o] || v == (2*ms[o])%vals[o] || v == (3*ms[o])%vals[o])
                        tot++;
                    else
                        break;
                }
                if(tot == num)
                    out++;
            }
        }
    }
    cout << out << '\n';
}

uci main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0); cout.tie(0);
    // freopen("input.txt", "r", stdin);
    // freopen("output.txt", "w", stdout);

        // cout << "Case #" << t  << ": ";
        solve();
}

/*
    random number generator stuff
    num = rng(); gives integer number
    num = uniform_int_distribution<int>(a, b)(rng); -> bounds [a, b]
    num = uniform_real_distribution<double>(a, b)(rng); -> bounds [a, b)
    can also instantiate distributions and call on generator:
    uniform_int_distribution<int> thing(a, b);
    num = thing(rng);
*/
// struct custom_hash {
//     static uint64_t splitmix64(uint64_t x) {
//         // http://xorshift.di.unimi.it/splitmix64.c
//         x += 0x9e3779b97f4a7c15;
//         x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9;
//         x = (x ^ (x >> 27)) * 0x94d049bb133111eb;
//         return x ^ (x >> 31);
//     }
//     size_t operator()(uint64_t x) const {
//         static const uint64_t FIXED_RANDOM = lrng();
//         return splitmix64(x + FIXED_RANDOM);
//     }
// };

这程序好像有点Bug,我给组数据试试?

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

input:

4 1
0
1
10
17

output:

3

result:

ok 1 number(s): "3"

Test #2:

score: 0
Accepted
time: 193ms
memory: 7000kb

input:

500 859
7118711592236878297922359501613604144948355616986970837340677671376753603836852811886591300370143151943368529129749813118476151865844255212534355441611481420938483178075143062691345257288242460282715389758789648541099090735875617822348551942134616963557723055980260082230902505269975518146286...

output:

0

result:

ok 1 number(s): "0"

Test #3:

score: 0
Accepted
time: 481ms
memory: 71436kb

input:

500 17336
11871159223687829792235950161360414494835561698697083734067767137675360383685281188659130037014315194336852912974981311847615186584425521253435544161148142093848317807514306269134525728824246028271538975878964854109909073587561782234855194213461696355772305598026008223090250526997551814628...

output:

0

result:

ok 1 number(s): "0"

Test #4:

score: 0
Accepted
time: 312ms
memory: 3936kb

input:

500 1
751324443898124078584847834484321089092662321556147445230263526014359393841194947303407593948729802551881289193716611867931891257925091769456350249725997883453296895094445731130479434019358742162771547784250401546380268386074363779242500860317042151185119666027858022664683818314351285215150806...

output:

2327631

result:

ok 1 number(s): "2327631"

Test #5:

score: 0
Accepted
time: 225ms
memory: 4008kb

input:

500 2
408542968136435277974575411503179002415404345446801430469044749372949272333801248935236224652806667129749035002588943020176263162139056819871274824302889304493205266143688886696157147111754418731401856424401766968832165255416237731963027205324149660112574729610391396555581935236134531799950318...

output:

212002

result:

ok 1 number(s): "212002"

Test #6:

score: 0
Accepted
time: 395ms
memory: 48252kb

input:

500 11500
75411775796562109942642493394321873284995260953010112281856775261847503626737348402159485133662757032091519863427156582689971229143089317472838196453888261138079171290535429921921548971897026706656838415620603757605079012541561774699628665865662183868374645956694140356716037674688084770628...

output:

7675

result:

ok 1 number(s): "7675"

Test #7:

score: 0
Accepted
time: 392ms
memory: 48272kb

input:

500 11500
85355036663164764459816544518601485185320972076300982726542821424439713703229669576802138231401047471351087455159512255765325323540671792953715169122669767368905391325060775725733157611188832204902997772518104188947349204726490597030311894441123834099315122116302203972018409854605418988681...

output:

1070

result:

ok 1 number(s): "1070"

Test #8:

score: 0
Accepted
time: 1ms
memory: 3944kb

input:

1 11500
9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999...

output:

1

result:

ok 1 number(s): "1"

Extra Test:

score: 0
Extra Test Passed