#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; #define FOR(i,a,b) for(int i=(a);i<(b);++i) #define REP(i,n) for(int i=0;i<(n);++i) #define foreach(itr,c) for(__typeof(c.begin()) itr=c.begin(); itr!=c.end(); itr++) bool ch(int x, int y, int z){ bool ret=true; if(x==y || x==z || y==z) ret=false; else{ if(xy && y>z) ret=false; } return ret; } int main(int argc, char const *argv[]) { int n; int k[12]; cin >>n; REP(i,n) cin >>k[i]; //状態をbitで表し、この状態で自分の番が来たら勝てるのか bool w[4100]; w[0]=false; FOR(st,1,1<>i)&1; //printf(" %d : %d\n", st, ones); if(ones<3){ w[st]=false; } else{ //bitが立ってる位置はまだ場に残っている //3重ループで列挙 //どう選んでも勝ちの状態に行くならそこは負け //1つでも負けの状態に行く道があればそこは勝ち w[st]=false; FOR(a,0,n)FOR(b,a+1,n)FOR(c,b+1,n){ //3つを列挙 if((st>>a)&1 && (st>>b)&1 && (st>>c)&1){ //全てbitが立ってれば試せる if(ch(k[a],k[b],k[c])){ //門松数? int nx=st-(1<