Submission #1164232


Source Code Expand

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <cmath>
#include <cassert>
#define FOR(i,a,b) for(int i=(a);i<(b);i++)
#define REP(i,n) FOR(i,0,n)
#define rep(i,n) FOR(i,0,n)
#define DEBUG(x) cout<<#x<<": "<<x<<endl
#define vint vector<int>
#define vdouble vector<double>
#define vstring vector<string>
using namespace std;

#include<map>
#include<set>
#include<queue>

typedef long long ll;
typedef unsigned long long ull;

const int MAX_N = 1000000;

int N;
int A[100000];
const ll M = 1000000007;

ll power(ll x, ll n){
    ll tmp = 1;

    if (n > 0){
        tmp = power(x, n/2);
        if ( n%2 == 0 ) tmp = (tmp*tmp)%M;
        else tmp = (((tmp*tmp)%M)*x)%M;
    }
    return tmp;
}

int main() {
    cin >> N;
    rep(i, N) cin >> A[i];

    if(A[0] != 0) {
        cout << 0 << endl;
        return 0;
    }
    if(N == 1 && A[0] == 0){
        cout << 1 << endl;
        return 0;
    }

    sort(&A[0], &A[N]);
    if(A[1] != 1) {
        cout << 0 << endl;
        return 0;
    }

    ll ret = 1;
    int mx = 1;
    int c0 = 0;
    int c1 = 1;
    int c2 = 1;

    for(int i = 2; i < N; i++){

        if(A[i] == mx + 1){
            ret *= (power(2, c2) - 1);
            ret %= M;
            c0 += c1;
            c1 = c2;
            c2 = 1;
            mx = mx+1;
        }
        else if(A[i] == mx){
            ret *= power(2, c2);
            ret %= M;
            ret *= (power(2, c1) - 1);
            ret %= M;
            c2++;
        }
        else{
             cout << 0 << endl;
             return 0;
        }

        fprintf(stderr, "%d %d %d %d %d %d %d\n", i, A[i], mx, c0, c1, c2, ret);
    }

    cout << ret << endl;
}

Submission Info

Submission Time
Task B - 最短路問題
User threecourse
Language C++14 (GCC 5.4.1)
Score 100
Code Size 1790 Byte
Status AC
Exec Time 119 ms
Memory 640 KB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:87:79: warning: format ‘%d’ expects argument of type ‘int’, but argument 9 has type ‘ll {aka long long int}’ [-Wformat=]
         fprintf(stderr, "%d %d %d %d %d %d %d\n", i, A[i], mx, c0, c1, c2, ret);
                                                                               ^

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 1 ms 256 KB
sample_02.txt AC 1 ms 256 KB
sample_03.txt AC 1 ms 256 KB
sample_04.txt AC 1 ms 256 KB
test_01.txt AC 1 ms 256 KB
test_02.txt AC 1 ms 256 KB
test_03.txt AC 1 ms 256 KB
test_04.txt AC 1 ms 256 KB
test_05.txt AC 2 ms 256 KB
test_06.txt AC 2 ms 256 KB
test_07.txt AC 2 ms 256 KB
test_08.txt AC 2 ms 256 KB
test_09.txt AC 2 ms 256 KB
test_10.txt AC 1 ms 256 KB
test_11.txt AC 105 ms 640 KB
test_12.txt AC 111 ms 640 KB
test_13.txt AC 112 ms 640 KB
test_14.txt AC 113 ms 640 KB
test_15.txt AC 114 ms 640 KB
test_16.txt AC 114 ms 640 KB
test_17.txt AC 115 ms 640 KB
test_18.txt AC 115 ms 640 KB
test_19.txt AC 115 ms 640 KB
test_20.txt AC 116 ms 640 KB
test_21.txt AC 115 ms 640 KB
test_22.txt AC 114 ms 640 KB
test_23.txt AC 115 ms 640 KB
test_24.txt AC 115 ms 640 KB
test_25.txt AC 119 ms 640 KB
test_26.txt AC 115 ms 640 KB
test_27.txt AC 115 ms 640 KB
test_28.txt AC 117 ms 640 KB
test_29.txt AC 36 ms 640 KB
test_30.txt AC 31 ms 640 KB
test_31.txt AC 1 ms 256 KB
test_32.txt AC 1 ms 256 KB
test_33.txt AC 1 ms 256 KB
test_34.txt AC 1 ms 256 KB
test_35.txt AC 1 ms 256 KB
test_36.txt AC 1 ms 256 KB
test_37.txt AC 1 ms 256 KB
test_38.txt AC 1 ms 256 KB
test_39.txt AC 1 ms 256 KB
test_40.txt AC 1 ms 256 KB
test_41.txt AC 1 ms 256 KB
test_42.txt AC 1 ms 256 KB