Solution:
这个题只需要分类讨论就可以解决。
先分别统计奇数和偶数的个数。
然后判断谁走最后一步,如果走最后一步时候同时有偶数和奇数,那么走最后一步的赢。如果没有呢,就看剩下的是奇数还是偶数,是偶数不用说,是奇数看剩奇数个还是偶数个。
针对这几种情况讨论一下就可以。
#include <bits/stdc++.h> using namespace std;
int n, k, o, e;
int main()
{
cin >> n >> k;
for( int i = , x; i <= n; ++i ) {
cin >> x;
o += x & ;
e += !( x & );
}
int sta = o & ;
int t = n - k;
if( t > ) {
if( t & ) {
sta = ;
if( ( min( o, e ) > t / ) || ( o > e && k & ) ) sta = ;
} else {
sta = ;
if( ( min( o, e ) > (t+) / ) || ( o > e && !( k & ) ) || ( e > o ) ) sta = ;
}
}
puts( sta ? "Stannis" : "Daenerys" );
}