Submission details
Task:Aristocracy
Sender:¯\_(._.)_/¯
Submission time:2025-11-08 12:54:46 +0200
Language:C++ (C++17)
Status:READY
Result:
Test results
testverdicttime
#1ACCEPTED0.00 sdetails
#2ACCEPTED0.00 sdetails
#3ACCEPTED0.00 sdetails
#40.00 sdetails
#50.00 sdetails
#60.05 sdetails
#70.05 sdetails
#80.06 sdetails
#90.06 sdetails
#100.10 sdetails
#110.07 sdetails
#120.07 sdetails
#130.08 sdetails
#140.08 sdetails
#150.14 sdetails
#160.15 sdetails
#17ACCEPTED0.03 sdetails

Compiler report

input/code.cpp: In function 'int main()':
input/code.cpp:24:23: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   24 |     for (int i = 1; i < fact.size(); i++)
      |                     ~~^~~~~~~~~~~~~

Code

#include <bits/stdc++.h>
#define int long long
using namespace std;

const int mod = 1e9+7;
const int MAXN = 40;
vector<int> fact = vector<int>(MAXN);

int pow(int x, int n)
{
    if (n == 0) return 1;
    int u = pow(x, n/2);
    u = (u*u) % mod;
    if (n%2 == 1) u = (u*x)%mod;
    return u;
}

int inv(int a) {
    return pow(a, mod-2) % mod;
}

signed main() {
    fact[0] = 1;
    for (int i = 1; i < fact.size(); i++)
    {
        fact[i] = fact[i-1] * i;
        fact[i] %= mod;
    }

    unordered_map<string, int> dict;

    int n;
    cin >> n;
    for (int i = 0; i < n; i++)
    {
        string s;
        cin >> s;
        int a;
        cin >> a;
        dict[s]++;
    }
    int res = fact[n];
    for (auto [name, amount] : dict)
    {
        res *= inv(fact[amount]);
        res %= mod;
    }
    cout << res;
}

Test details

Test 1

Verdict: ACCEPTED

input
4
Uolevi 1
Maija 3
Uolevi 2
Maija 2

correct output
6

user output
6

Test 2

Verdict: ACCEPTED

input
31
Eric 9
Charles 7
Sverker 2
Eric 10
...

correct output
541197645

user output
541197645

Test 3

Verdict: ACCEPTED

input
19
Ivan 4
Feodor 1
Feodor 2
Dmitry 1
...

correct output
939302456

user output
939302456

Test 4

Verdict:

input
41
William 1
William 2
Henry 1
Stephen 1
...

correct output
520019025

user output
855258473

Feedback: Incorrect character on line 1 col 1: expected "520019025", got "855258473"

Test 5

Verdict:

input
216
Peter 1
Linus 1
Cletus 1
Clement 1
...

correct output
200519221

user output
-494594004

Feedback: Incorrect character on line 1 col 1: expected "200519221", got "-494594004"

Test 6

Verdict:

input
100000
A 1
A 2
A 3
A 4
...

correct output
1

user output
(empty)

Test 7

Verdict:

input
100000
E 1
Y 1
Y 2
M 1
...

correct output
504127783

user output
(empty)

Test 8

Verdict:

input
100000
Maija 1
Uolevi 1
Maija 2
Maija 3
...

correct output
328286172

user output
(empty)

Test 9

Verdict:

input
100000
Maijx 1
Maije 1
Maijw 1
Maijp 1
...

correct output
178134668

user output
(empty)

Test 10

Verdict:

input
100000
Bwvfj 1
Zmcpk 1
Jnmhz 1
Vcqtv 1
...

correct output
804665298

user output
250445658

Feedback: Incorrect character on line 1 col 1: expected "804665298", got "250445658"

Test 11

Verdict:

input
100000
A 947476077
A 209406366
A 64254608
A 370109404
...

correct output
1

user output
(empty)

Test 12

Verdict:

input
100000
F 779918796
L 978222897
L 977989517
O 263870841
...

correct output
903086284

user output
(empty)

Test 13

Verdict:

input
100000
Maija 968540665
Uolevi 869194539
Uolevi 530855688
Maija 232728327
...

correct output
271775549

user output
(empty)

Test 14

Verdict:

input
100000
Uolevj 501874596
Uolevm 133829533
Uolevd 13322011
Uolevw 418508186
...

correct output
529945879

user output
(empty)

Test 15

Verdict:

input
100000
Hamql 748803883
Mpfaf 709208011
Gegcd 685359815
Yvain 890816531
...

correct output
166192905

user output
-392959971

Feedback: Incorrect character on line 1 col 1: expected "166192905", got "-392959971"

Test 16

Verdict:

input
100000
Barmfsykcm 225712723
Xmvycwxssc 893904167
Wpetqrazdz 316367309
Eatxvkieif 111661228
...

correct output
457992974

user output
-540640650

Feedback: Incorrect character on line 1 col 1: expected "457992974", got "-540640650"

Test 17

Verdict: ACCEPTED

input
1
Ltwgcnsajxaxhacysdjhrpzymwxaen...

correct output
1

user output
1