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 |
|
|
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 |