Submission #7014092


Source Code Expand

#include <bits/stdc++.h>
#define int long long
#define rep(a,b) for(int (a)=0; (a)<(int)(b); ++(a))
using namespace std;

constexpr int MOD=1000000007;

signed main(void){
  int N; cin>>N;
  map<int,int> A;
  rep(i,N){
    int ta; cin>>ta;
    ++A[ta];
  }
  bool able=true;
  int ans=0;
  if(N%2){
    able&=A[0]==1;
    for(int i=2;i<N;i+=2){
      able&=A[i]==2;
    }
    if(able){
      ans=1;
      rep(i,N/2){
        ans=ans*2%MOD;
      }
    }
  }
  else{
    for(int i=1;i<N;i+=2){
      able&=A[i]==2;
    }
    if(able){
      ans=1;
      rep(i,N/2){
        ans=ans*2%MOD;
      }
    }
  }
  cout<<ans;
}

Submission Info

Submission Time
Task C - Lining Up
User lX57
Language C++14 (GCC 5.4.1)
Score 300
Code Size 660 Byte
Status AC
Exec Time 67 ms
Memory 5376 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 1 ms 256 KB
sample_02.txt AC 1 ms 256 KB
sample_03.txt AC 1 ms 256 KB
subtask_1_invalid_01.txt AC 50 ms 2944 KB
subtask_1_invalid_02.txt AC 9 ms 768 KB
subtask_1_max_01.txt AC 65 ms 5376 KB
subtask_1_max_02.txt AC 67 ms 5376 KB
subtask_1_max_valid_01.txt AC 60 ms 3328 KB
subtask_1_max_valid_02.txt AC 59 ms 3328 KB
subtask_1_min_valid_01.txt AC 1 ms 256 KB
subtask_1_rand_01.txt AC 38 ms 3328 KB
subtask_1_rand_02.txt AC 59 ms 4992 KB
subtask_1_valid_01.txt AC 30 ms 1920 KB
subtask_1_valid_02.txt AC 11 ms 896 KB