Submission #7035820


Source Code Expand

#include <bits/stdc++.h>
using ll = long long;
using namespace std;
ll mod=1e9+7;

int main(){
  int N,A[100000];
  cin>>N;
  for (int i(0);i<N;i++) cin>>A[i];
  int B[100000]={0};
  for (int i(0);i<N;i++){
    int x=(A[i]+N-1)/2;
    int y=N-1-x;
    if (x==y) B[x]++;
    else {
      B[min(x,y)]++;
      B[max(x,y)]++;
    }
  }
  ll ans(1);
  // for (int i(0);i<N;i++) cout << B[i] << " ";
  for (int i(0);i<N;i++){
    if (B[i]==0 || (B[i]==1&&i!=N/2)) {
      cout << 0 << endl;
      return 0;
    }
  }
  for (int i(0);i<(N+1)/2;i++){
    ans*=B[i]; 
    ans%=mod;
  }
  cout << ans << endl;
  return 0;
}

Submission Info

Submission Time
Task C - Lining Up
User MASATO338
Language C++14 (GCC 5.4.1)
Score 300
Code Size 649 Byte
Status AC
Exec Time 37 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 1 ms 640 KB
sample_02.txt AC 1 ms 640 KB
sample_03.txt AC 1 ms 640 KB
subtask_1_invalid_01.txt AC 31 ms 1024 KB
subtask_1_invalid_02.txt AC 7 ms 640 KB
subtask_1_max_01.txt AC 36 ms 1024 KB
subtask_1_max_02.txt AC 36 ms 1024 KB
subtask_1_max_valid_01.txt AC 37 ms 1024 KB
subtask_1_max_valid_02.txt AC 37 ms 1024 KB
subtask_1_min_valid_01.txt AC 1 ms 640 KB
subtask_1_rand_01.txt AC 23 ms 896 KB
subtask_1_rand_02.txt AC 34 ms 1024 KB
subtask_1_valid_01.txt AC 21 ms 896 KB
subtask_1_valid_02.txt AC 8 ms 768 KB