QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#700157#5301. Modulo Ruins the Legendtsogsummit#WA 0ms3720kbC++141.5kb2024-11-02 12:11:182024-11-02 12:11:23

Judging History

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

  • [2024-11-02 12:11:23]
  • 评测
  • 测评结果:WA
  • 用时:0ms
  • 内存:3720kb
  • [2024-11-02 12:11:18]
  • 提交

answer

#include <iostream>
#include <algorithm>
#include <cmath>
#include <map>

#define ll long long
#define F first
#define S second
#define pb push_back
#define mp make_pair

long long phi(long long n) {
    long long result = n;
    for (long long i = 2; i * i <= n; i++) {
        if (n % i == 0) {
            while (n % i == 0)
                n /= i;
            result -= result / i;
        }
    }
    if (n > 1)
        result -= result / n;
    return result;
}

using namespace std;

ll gcd(ll a, ll b) {
    if(b == 0)
        return a;
    return gcd(b, a % b);
}



ll binpow(ll a, ll b , long long mod) {
    ll res = 1;
    a %= mod;
    while(b > 0) {
        if(b & 1){
            res = res * a;
            res %= mod;
        }
        a = a * a;
        a %= mod;
        b >>= 1;
    }
    return res % mod;
}

int main(){
    long long n , m , i;
    cin >> n >> m;
    long long sum = 0 , a;
    for(i = 0 ; i < n ; i ++){
        cin >> a;
        sum += a;
    }
    long long k = gcd(gcd(n , n*(n + 1)/ 2) , m);
    
    long long res = sum % k;
    cout << res << '\n';//hariu;
    long long resres;
    if(gcd(n , m) == k){
        resres = binpow(n/k , phi(m/k) - 1, m);
        res -= sum;
        while(res < 0)res += m;
        cout << (resres * res / k)<< " 0";
    }
    else {
        resres = binpow(n*(n + 1)/2/k, phi(m/k) - 1, m);
        res -= sum;
        while(res < 0)res += m;
        cout << "0 " << (resres * res / k);
    }
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 3712kb

input:

6 24
1 1 4 5 1 4

output:

1
0 21

result:

ok ok

Test #2:

score: 0
Accepted
time: 0ms
memory: 3720kb

input:

7 29
1 9 1 9 8 1 0

output:

0
0 0

result:

ok ok

Test #3:

score: 0
Accepted
time: 0ms
memory: 3592kb

input:

1 1
0

output:

0
0 0

result:

ok ok

Test #4:

score: 0
Accepted
time: 0ms
memory: 3656kb

input:

1 1000000000
963837005

output:

0
36162995 0

result:

ok ok

Test #5:

score: 0
Accepted
time: 0ms
memory: 3656kb

input:

2 1
0 0

output:

0
0 0

result:

ok ok

Test #6:

score: -100
Wrong Answer
time: 0ms
memory: 3588kb

input:

2 1000000000
948507269 461613424

output:

0
0 393252871529959769

result:

wrong output format Expected int32, but "393252871529959769" found