Submission #1220704


Source Code Expand

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

// template for creating 2d vector
template<typename T>
vector<vector<T>> make_2d_vector(size_t rows, size_t cols, T init)
{ return vector< vector<T> >(rows, vector<T>(cols, init)); }

#define debug(x) cout << #x << "==" << x << endl;
const int inf = 1e+8;
const int mod = 1e+9 + 7;
typedef long long ll;

// a^b
ll pow(ll a, int b){
    int ret = 1;
    while(b){
        if(b & 1) ret = (1ll) * ret * a % mod;
        b >>= 1;
        a = (1ll) * a * a % mod;
    }
    return ret;
}


int main() {
  ios::sync_with_stdio(false);

  int N;
  cin >> N;

  vector<int> a(N);
  for(int i = 0; i < N; i++) { cin >> a[i]; }

  sort(a.begin(), a.end());

  bool ok = true;

  if( N % 2 == 0 ) {
    int n = 1;
    for(int i = 0; i < N; i += 2) {
      if( a[i] == n and a[i+1] == n ) {
        n += 2;
      } else {
        ok = false;
        break;
      }
    }
  }
  else {
    if( a[0] != 0 ) { ok = false; }
    else {
      int n = 2;
      for(int i = 1; i < N; i += 2 ) {
        if( a[i] == n and a[i+1] == n ) {
          n += 2;
        } else {
          ok = false;
          break;
        }
      }
    }
  }

  if( not ok ) {
    cout << 0 << "\n";
  } else {
    cout << pow(2, N / 2) << "\n";
  }


  return 0;
}

Submission Info

Submission Time
Task C - Lining Up
User sadtomato
Language C++14 (GCC 5.4.1)
Score 300
Code Size 1387 Byte
Status AC
Exec Time 15 ms
Memory 640 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 13 ms 640 KB
subtask_1_invalid_02.txt AC 4 ms 384 KB
subtask_1_max_01.txt AC 15 ms 640 KB
subtask_1_max_02.txt AC 15 ms 640 KB
subtask_1_max_valid_01.txt AC 15 ms 640 KB
subtask_1_max_valid_02.txt AC 15 ms 640 KB
subtask_1_min_valid_01.txt AC 1 ms 256 KB
subtask_1_rand_01.txt AC 10 ms 512 KB
subtask_1_rand_02.txt AC 14 ms 640 KB
subtask_1_valid_01.txt AC 9 ms 512 KB
subtask_1_valid_02.txt AC 4 ms 384 KB