Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //ALEX ENACHE
- #include <vector>
- #include <algorithm>
- #include <math.h>
- #include <iomanip>
- #include <bitset>
- #include <queue>
- #include <deque>
- #include <stack>
- #include <string>
- #include <map>
- #include <unordered_map>
- #include <set>
- #include <unordered_map>
- #include <random>
- #include <time.h>
- #include <assert.h>
- #include <iostream>
- using namespace std;
- const int MAXN = 105;
- int n;
- int dif;
- int eq;
- int ans[MAXN];
- int oposite(int i) {
- return n - i + 1;
- }
- void REVERSE() {
- for (int i = 1; i <= n / 2; i++) {
- swap(ans[i], ans[oposite(i)]);
- }
- }
- void XOR() {
- for (int i = 1; i <= n; i++) {
- ans[i] ^= 1;
- }
- }
- int changes() {
- int DIF, EQ;
- if (dif && eq) {
- cout << dif << endl;
- cin >> DIF;
- cout << eq << endl;
- cin >> EQ;
- if (DIF == ans[dif] && EQ == ans[eq]) {
- //ok
- }
- else if (DIF != ans[dif] && EQ == ans[eq]) {
- REVERSE();
- }
- else if (DIF == ans[dif] && EQ != ans[eq]) {
- REVERSE();
- XOR();
- }
- else if (DIF != ans[dif] && EQ != ans[eq]) {
- XOR();
- }
- return 8;
- }
- if (dif) {
- cout << dif << endl;
- cin >> DIF;
- if (DIF != ans[dif]) {
- REVERSE();
- }
- return 9;
- }
- if (eq) {
- cout << eq << endl;
- cin >> EQ;
- if (EQ != ans[eq]) {
- XOR();
- }
- return 9;
- }
- return 10;
- }
- void solve() {
- int pos = 1;
- dif = 0;
- eq = 0;
- while (pos <= oposite(pos)) {
- int moves = changes();
- while (moves >= 2 && pos <= oposite(pos)) {
- int op = oposite(pos);
- cout << pos << endl;
- cin >> ans[pos];
- cout << op << endl;
- cin >> ans[op];
- if (ans[pos] != ans[op]) {
- dif = pos;
- }
- if (ans[pos] == ans[op]) {
- eq = pos;
- }
- pos++;
- moves -= 2;
- }
- if (moves) { //inutil
- int aux;
- cout << 1 << endl;
- cin >> aux;
- }
- }
- for (int i = 1; i <= n; i++) {
- cout << ans[i];
- }
- cout << endl;
- char ret;
- cin >> ret;
- assert(ret == 'Y');
- }
- int main() {
- int t;
- cin >> t >> n;
- for (int i = 1; i <= t; i++) {
- //cout << "Case #" << i << ": ";
- solve();
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement