Submission #782640


Source Code Expand

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

typedef long long ll;
#define rep(i,n) for(int (i)=0;(i)<(int)(n);++(i))
#define each(itr,c) for(__typeof(c.begin()) itr=c.begin(); itr!=c.end(); ++itr)
#define all(x) (x).begin(),(x).end()
#define mp make_pair
#define pb push_back
#define fi first
#define se second

const ll mod=1e9+7;

ll mod_pow(ll n, ll x)
{
    ll pw[40];
    pw[0]=n;
    for(int i=1; i<40; ++i) pw[i]=(pw[i-1]*pw[i-1])%mod;

    ll ret=1;
    rep(i,40) if(x>>i&1) (ret*=pw[i])%=mod;
    return ret;
}

int main()
{
    int n;
    cin >>n;
    vector<int> a(n);
    rep(i,n) scanf(" %d",&a[i]);

    bool valid=(a[0]==0);
    for(int i=1; i<n; ++i) if(a[i]==0) valid=false;

    //2のべき乗そ求めておく
    ll pw[100000];
    pw[0]=1;
    for(int i=1; i<100000; ++i)
    {
        pw[i]=pw[i-1]*2;
        pw[i]%=mod;
    }

    ll ans=0;

    if(valid)
    {
        //最大の深さ
        int deep=0;
        //その深さの頂点個数
        int ct[100000]={0};
        rep(i,n)
        {
            deep=max(deep,a[i]);
            ++ct[a[i]];
        }
        //最大の深さにたどり着く途中の深さの頂点がなかったらダメ
        rep(i,deep+1) if(ct[i]==0) valid=false;

        if(valid)
        {
            ans=1;
            for(int i=1; i<=deep; ++i)
            {
                //深さiと深さi-1間に張る辺の組み合わせ
                ll x=(pw[ct[i-1]]-1+mod)%mod;
                (ans*=mod_pow(x,ct[i]))%=mod;

                //深さi同士間に張る辺の組み合わせ
                ll y=(ll)ct[i]*(ct[i]-1)/2;
                (ans*=mod_pow(2,y))%=mod;
            }
        }
    }

    cout << ans << endl;
    return 0;
}

Submission Info

Submission Time
Task B - 最短路問題
User imulan
Language C++11 (GCC 4.9.2)
Score 100
Code Size 1804 Byte
Status AC
Exec Time 133 ms
Memory 2348 KB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:31:32: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
     rep(i,n) scanf(" %d",&a[i]);
                                ^

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 100 / 100
Status
AC × 4
AC × 46
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt
All sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt, test_32.txt, test_33.txt, test_34.txt, test_35.txt, test_36.txt, test_37.txt, test_38.txt, test_39.txt, test_40.txt, test_41.txt, test_42.txt
Case Name Status Exec Time Memory
sample_01.txt AC 28 ms 1952 KB
sample_02.txt AC 28 ms 1564 KB
sample_03.txt AC 27 ms 1564 KB
sample_04.txt AC 28 ms 2072 KB
test_01.txt AC 28 ms 2076 KB
test_02.txt AC 28 ms 2072 KB
test_03.txt AC 28 ms 2072 KB
test_04.txt AC 25 ms 1692 KB
test_05.txt AC 26 ms 1944 KB
test_06.txt AC 30 ms 1948 KB
test_07.txt AC 26 ms 1956 KB
test_08.txt AC 31 ms 1948 KB
test_09.txt AC 28 ms 2068 KB
test_10.txt AC 26 ms 1568 KB
test_11.txt AC 41 ms 2336 KB
test_12.txt AC 40 ms 2348 KB
test_13.txt AC 40 ms 2348 KB
test_14.txt AC 40 ms 2340 KB
test_15.txt AC 40 ms 2332 KB
test_16.txt AC 41 ms 2344 KB
test_17.txt AC 41 ms 2336 KB
test_18.txt AC 42 ms 2332 KB
test_19.txt AC 42 ms 2336 KB
test_20.txt AC 41 ms 2336 KB
test_21.txt AC 43 ms 2340 KB
test_22.txt AC 41 ms 2332 KB
test_23.txt AC 44 ms 2332 KB
test_24.txt AC 45 ms 2340 KB
test_25.txt AC 73 ms 2328 KB
test_26.txt AC 133 ms 2336 KB
test_27.txt AC 133 ms 2328 KB
test_28.txt AC 69 ms 2336 KB
test_29.txt AC 45 ms 1960 KB
test_30.txt AC 43 ms 1952 KB
test_31.txt AC 27 ms 1956 KB
test_32.txt AC 29 ms 1564 KB
test_33.txt AC 29 ms 1956 KB
test_34.txt AC 29 ms 2068 KB
test_35.txt AC 28 ms 1960 KB
test_36.txt AC 26 ms 1496 KB
test_37.txt AC 25 ms 1580 KB
test_38.txt AC 29 ms 1560 KB
test_39.txt AC 26 ms 1672 KB
test_40.txt AC 28 ms 1568 KB
test_41.txt AC 27 ms 2076 KB
test_42.txt AC 26 ms 1952 KB