C - Lining Up
题目大意:
有n个人 编号是从1到n,他们不知道自己所在的位置,但是他们知道自己左边和右边的人数之差的绝对值,根据所给的数据,问有多少种可能?
分析:
首先这个题要根据n的奇偶性来讨论
当n为偶数时:
给出的数据一定是奇数,因为左边和右边人的个数一定是一奇一偶 之差肯定是奇数
当n为奇数时:
给出的数据一定是偶数,因为左边和右边人的个数一定是两奇或者两偶 之差肯定是偶数 除此之外还要注意零 当数据为0时 只有一种可能 即这个人站在中间 另外0只能出现一次 如果有两次则是数据出错
AC代码:
#include <iostream>
#include <algorithm>
#include <cstring>
#include <string>
#include <cmath>
#define ll long long
ll MOD=1e9+7;
ll a[100005];
using namespace std;
int main(){
ll n