Submission #1123179


Source Code Expand

#define FOR(i,a,b) for (int i=(a);i<(b);i++)
#define RFOR(i,a,b) for (int i=(b)-1;i>=(a);i--)
#define REP(i,n) for (int i=0;i<(n);i++)
#define RREP(i,n) for (int i=(n)-1;i>=0;i--)
#define ALL(x) x.begin(), x.end()
#define ASORT(x) sort(x.begin(), x.end());
#define DSORT(x) sort(x.rbegin(), x.rend());
#define OUT(x) cout<<x<<endl;

#define VINT vector<int>;
#define I(x) int x; cin>>x;
#define VI(v,n) vector<int> v; v.resize(n); REP(i,n) cin>>v[i];
#define VLINT vector<long long>
#define LI(x) long long x; cin>>x;
#define VLI(v,n) vector<lint> v; v.resize(n); REP(i,n) cin>>v[i];
#define VDOUBLE vector<double>
#define D(x) double x; cin>>x;
#define VD(v,n) vector<double> v; v.resize(n); REP(i,n) cin>>v[i];
#define VSTRING vector<string>
#define STR(x) string x; cin>>x;
#define VSTR(v,n) vector<string> v; v.resize(n); REP(i,n) cin>>v[i];

#include <iostream>
#include <algorithm>
#include <cmath>
#include <string>
#include <vector>

using namespace std;

bool eval(vector<int> vint)
{
	int N = vint.size();
	int s = N - 1;
	
	DSORT(vint);
	if (N % 2 == 1) vint.push_back(0);

	REP(i, N)
	{
		int a = vint[i];
		int b = vint[++i];
		if (a != s || b != s || a != b) return false;
		s -= 2;
	}

	return true;
}

long long pow(int a, int b, int mod)
{
	int ret = 1;
	REP(i, b)
	{
		ret = ret * a % mod;
	}
	return ret;
}

int main()
{
	I(N);
	VI(A, N);
	
	if (eval(A)) OUT(pow(2, N/2, 1000000007)) else OUT(0)

	cin.get();
	return 0;
}

Submission Info

Submission Time
Task C - Lining Up
User roy_gdev
Language C++14 (GCC 5.4.1)
Score 300
Code Size 1510 Byte
Status AC
Exec Time 35 ms
Memory 1280 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 30 ms 1280 KB
subtask_1_invalid_02.txt AC 7 ms 512 KB
subtask_1_max_01.txt AC 35 ms 1024 KB
subtask_1_max_02.txt AC 35 ms 1024 KB
subtask_1_max_valid_01.txt AC 35 ms 1024 KB
subtask_1_max_valid_02.txt AC 35 ms 1024 KB
subtask_1_min_valid_01.txt AC 1 ms 256 KB
subtask_1_rand_01.txt AC 22 ms 768 KB
subtask_1_rand_02.txt AC 33 ms 896 KB
subtask_1_valid_01.txt AC 19 ms 640 KB
subtask_1_valid_02.txt AC 8 ms 512 KB