CSES - Datatähti Open 2017 - Results
Submission details
Task:Witch game
Sender:Wrinx
Submission time:2017-01-21 22:55:47 +0200
Language:C++
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
#30
Test results
testverdicttimegroup
#10.05 s1details
#20.04 s1details
#30.06 s1details
#40.05 s1details
#50.05 s1details
#60.04 s2details
#70.06 s2details
#8--2details
#90.05 s2details
#100.06 s2details
#110.08 s3details
#120.11 s3details
#13--3details
#140.10 s3details
#150.16 s3details

Code

#include<bits/stdc++.h>

#define F first
#define S second
#define ll long long
#define ull unsigned long long
#define pb push_back
using namespace std;
ll n, c2, c3, c4;
vector < int > g[200000];
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cin >> n;
    for (int i = 1; i <= n; i++){
        int x;
        cin >> x;
        g[i].pb(x);
        g[x].pb(i);
    }
    for (int i = 1; i <= n; i++){
        for (auto v: g[i]){
            multiset < int > s;
            s.clear();
            for (auto v1: g[i]) if (v1 != v) s.insert(v1);
            for (auto v2: g[v]) if (v2 != i) s.insert(v2);
            ll y = 0;
            for (int u: s) if (s.count(u) == 2) y++;
            c4 += y / 2;
            c3 += s.size() - y;
            ll x = n - s.size() - 2 + y / 2;
            c2 += x;
        }
    }
    c4 /= 6;
    c3 /= 4;
    c2 /= 2;
    cout << c2 << " " << c3 << " " << c4 << endl;
    ll ans = n * (n - 1) * (n - 2) / 6;
    cout << ans - c2 - c3 - c4 << endl;
}

Test details

Test 1

Group: 1

Verdict:

input
100
2 1 4 3 6 5 8 7 10 9 12 11 14 ...

correct output
156800

user output
9800 0 0
151900

Test 2

Group: 1

Verdict:

input
100
2 3 4 5 6 7 8 9 10 11 12 13 14...

correct output
152000

user output
9600 100 0
152000

Test 3

Group: 1

Verdict:

input
100
2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

correct output
156849

user output
0 4851 32
156817

Test 4

Group: 1

Verdict:

input
100
2 3 1 5 6 4 8 9 7 11 12 10 14 ...

correct output
151968

user output
9697 2 33
151968

Test 5

Group: 1

Verdict:

input
100
8 98 100 62 42 36 95 70 22 49 ...

correct output
152040

user output
9521 138 1
152040

Test 6

Group: 2

Verdict:

input
5000
2 1 4 3 6 5 8 7 10 9 12 11 14 ...

correct output
20808340000

user output
24990000 0 0
20795845000

Test 7

Group: 2

Verdict:

input
5000
2 3 4 5 6 7 8 9 10 11 12 13 14...

correct output
20795850000

user output
24980000 5000 0
20795850000

Test 8

Group: 2

Verdict:

input
5000
2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

correct output
20808342499

user output
(empty)

Test 9

Group: 2

Verdict:

input
5000
2 3 1 5 6 4 8 9 7 11 12 10 14 ...

correct output
20795848337

user output
24984992 5 1666
20795848337

Test 10

Group: 2

Verdict:

input
5000
283 2880 2565 3289 4160 936 39...

correct output
20795852465

user output
24975070 7465 0
20795852465

Test 11

Group: 3

Verdict:

input
100000
2 1 4 3 6 5 8 7 10 9 12 11 14 ...

correct output
166656666800000

user output
9999800000 0 0
166651666900000

Test 12

Group: 3

Verdict:

input
100000
2 3 4 5 6 7 8 9 10 11 12 13 14...

correct output
166651667000000

user output
9999600000 100000 0
166651667000000

Test 13

Group: 3

Verdict:

input
100000
2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

correct output
166656666849999

user output
(empty)

Test 14

Group: 3

Verdict:

input
100000
2 3 1 5 6 4 8 9 7 11 12 10 14 ...

correct output
166651666966668

user output
9999699997 2 33333
166651666966668

Test 15

Group: 3

Verdict:

input
100000
186 62491 95379 37431 88427 93...

correct output
166651667250100

user output
9999499789 150102 2
166651667050107