time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
Alica and Bob are playing a game.
Initially they have a binary string ss consisting of only characters 0 and 1.
Alice and Bob make alternating moves: Alice makes the first move, Bob makes the second move, Alice makes the third one, and so on. During each move, the current player must choose two different adjacent characters of string ss and delete them. For example, if s=1011001s=1011001 then the following moves are possible:
- delete s1s1 and s2s2: 1011001→110011011001→11001;
- delete s2s2 and s3s3: 1011001→110011011001→11001;
- delete s4s4 and s5s5: 1011001→101011011001→10101;
- delete s6s6 and s7s7: 1011001→101101011001→10110.
If a player can't make any move, they lose. Both players play optimally. You have to determine if Alice can win.
Input
First line contains one integer tt (1≤t≤10001≤t≤1000) — the number of test cases.
Only line of each test case contains one string ss (1≤|s|≤1001≤|s|≤100), consisting of only characters 0 and 1.
Output
For each test case print answer in the single line.
If Alice can win print DA (YES in Russian) in any register. Otherwise print NET (NO in Russian) in any register.
Example
input
Copy
3 01 1111 0011
output
Copy
DA NET NET
Note
In the first test case after Alice's move string ss become empty and Bob can not make any move.
In the second test case Alice can not make any move initially.
In the third test case after Alice's move string ss turn into 0101. Then, after Bob's move string ss become empty and Alice can not make any move.
解題說明:此題是一道貪心題,統計出0和1的個數,判斷能刪除的次數即可。
#include<bits/stdc++.h>
using namespace std;
int t, z, o;
string s;
int main()
{
cin >> t;
while (t--)
{
cin >> s;
z = 0;
o = 0;
for (int i = 0; i<s.size(); i++)
{
if (s[i] == '0')
{
z++;
}
else
{
o++;
}
}
if (min(o, z) % 2)
{
cout << "DA" << endl;
}
else
{
cout << "NET" << endl;
}
}
return 0;
}