Submission #6979732


Source Code Expand

#include <bits/stdc++.h>
typedef long long ll;
typedef long double ld;
const int INF=1e9,MOD=1e9+7,ohara=1e6+10;
const ll LINF=1e18;
using namespace std;

#define rep(i,n) for(int (i)=0;(i)<(int)(n);(i)++)
#define rrep(i,a,b) for(int i=(a);i<(b);i++)
#define rrrep(i,a,b) for(int i=(a);i>=(b);i--)
#define all(v) (v).begin(), (v).end()
#define Size(n) (n).size()
#define Cout(x) cout<<(x)<<endl
#define doublecout(a) cout<<fixed<<setprecision(15)<<a<<endl;
#define Cerr(x) cerr<<(x)<<endl
#define fi first
#define se second
#define P pair<ll,ll> 
#define m_p make_pair
#define V vector<ll> 
#define U_MAP unordered_map<ll,ll>

ll n,cnt,ans,a[ohara],b,c,d,tmp,tmpp,m,h,w,x,y,sum,pos,k;
ld doua;
int dy[]={1,0,-1,0};
int dx[]={0,1,0,-1};
//int dy[]={-1,0,1,-1,1,-1,0,1};
//int dx[]={-1,-1,-1,0,0,1,1,1};
string alph("abcdefghijklmnopqrstuvwxyz"),s;
bool fl;
struct edge{int to,cost;};

//-------------------------↓↓↓↓↓↓------------------------

//------ 自分を天才だと信じる ------

int main(void){
        cin.tie(0);
        cout.tie(0);
    ios::sync_with_stdio(false);

    cin>>n;
    rep(i,n)cin>>a[i];
    sort(a,a+n);
    if(n%2==1){
        if(a[0]!=0){
            Cout(0);
            return 0;
        }
        ll want=2;
        rrep(i,1,n){
            if(a[i]!=want){
                Cout(0);
                return 0;
            }
            i++;
            if(a[i]!=want){
                Cout(0);
                return 0;
            }
            want+=2;
        }
    }
    else{
        ll want=1;
        rep(i,n){
            if(a[i]!=want){
                Cout(0);
                return 0;
            }
            i++;
            if(a[i]!=want){
                Cout(0);
                return 0;
            }
            want+=2;
        }
    }
    n/=2;
    ans=1;
    rep(i,n){
        ans*=2;
        ans%=MOD;
    }
    Cout(ans);
    return 0;
}

Submission Info

Submission Time
Task C - Lining Up
User asdf1
Language C++14 (GCC 5.4.1)
Score 300
Code Size 1996 Byte
Status AC
Exec Time 15 ms
Memory 1024 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 300 / 300
Status
AC × 3
AC × 14
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
All sample_01.txt, sample_02.txt, sample_03.txt, subtask_1_invalid_01.txt, subtask_1_invalid_02.txt, subtask_1_max_01.txt, subtask_1_max_02.txt, subtask_1_max_valid_01.txt, subtask_1_max_valid_02.txt, subtask_1_min_valid_01.txt, subtask_1_rand_01.txt, subtask_1_rand_02.txt, subtask_1_valid_01.txt, subtask_1_valid_02.txt
Case Name Status Exec Time Memory
sample_01.txt AC 5 ms 764 KB
sample_02.txt AC 1 ms 256 KB
sample_03.txt AC 1 ms 256 KB
subtask_1_invalid_01.txt AC 13 ms 896 KB
subtask_1_invalid_02.txt AC 4 ms 384 KB
subtask_1_max_01.txt AC 15 ms 1024 KB
subtask_1_max_02.txt AC 15 ms 1024 KB
subtask_1_max_valid_01.txt AC 15 ms 1024 KB
subtask_1_max_valid_02.txt AC 15 ms 1024 KB
subtask_1_min_valid_01.txt AC 1 ms 256 KB
subtask_1_rand_01.txt AC 9 ms 768 KB
subtask_1_rand_02.txt AC 14 ms 1024 KB
subtask_1_valid_01.txt AC 9 ms 640 KB
subtask_1_valid_02.txt AC 4 ms 384 KB