#include #include using namespace std; int main() { //freopen("a.in", "r", stdin); //freopen("a.out", "w", stdout); int cards[4], i, t,x,y,z,n,m,opt=2,ok,j,nr10,nr14,nr7,minim,numar2; for (t = 1; t <= 1000; t++) { opt = 2; cin >> cards[0] >> cards[1] >> cards[2] >> cards[3]; while (opt != 4) { if (opt == 2) { numar2 = 4; do { cin >> x; if (x < 6) { opt = x; if (opt == 4) { cin >> n >> m; cout << "\n"; } else { cin >> y; for (i = 1; i <= y; i++) { cin >> z; for (j = 0; j < 4; j++) if (cards[j] == 0) { cards[j] = z; break; } } } } else { if (x != 10 && x != 14&&x!=7) { if (numar2 < 4) { cout << 0; cout.flush(); } else { j = -1; for (i = 0; i < 4; i++) if (cards[i] != 10 && cards[i] != 14 && cards[i] != 7 && cards[i]!=0) { cout << cards[i]; j = i; cards[i] = 0; break; } if (j == -1) { nr10 = 0; nr14 = 0; nr7 = 0; for (i = 0; i < 4; i++) if (cards[i] == 10) nr10++; else if (cards[i] == 14) nr14++; else if(cards[i]==7) nr7++; minim = 7; if (nr10 <= nr7&&nr10 < nr14) minim = 10; else if (nr14 <= nr7 && nr14 < nr10) minim = 14; cout << minim; for (i = 0; i < 4; i++) if (cards[i] == minim) { cards[i] = 0; break; } } cout.flush(); numar2--; } } else { { j = -1; ok = 0; for (i = 0; i < 4; i++) if (cards[i] == x || cards[i] == 7) { cout << cards[i]; cards[i] = 0; cout.flush(); numar2--; ok = 1; break; } else j = i; if (j >= 0 && ok == 0) { cout << cards[j]; numar2--; cout.flush(); cards[j] = 0; } } } } } while (x > 6); } else if (opt == 3) { nr10 = 0; nr14 = 0; nr7 = 0; x = 0; int numar = 4; for (i = 0; i < 4; i++) if (cards[i] == 10) nr10++; else if (cards[i] == 14) nr14++; else if (cards[i] == 7) nr7++; repeta: if ((nr10 + nr7 >= 2 && nr10>0 && numar==4) || (x == 10||x==7)&&(nr10>0||nr7>0)) { ok = 0; for (i = 0; i < 4; i++) if (cards[i] == 10) { cout << 10; nr10--; numar--; cards[i] = 0; cout.flush(); ok = 1; break; } if (ok == 0) for (i = 0; i < 4; i++) if (cards[i] == 7) { cout << 7; nr7--; numar--; cards[i] = 0; cout.flush(); ok = 1; break; } if (ok == 0) { cout << 0; cout.flush(); } } else if ((nr14 + nr7 >= 2 && nr14>0 && numar == 4) || (x == 14 || x == 7) && (nr14>0 || nr7>0)) { ok = 0; for (i = 0; i < 4; i++) if (cards[i] == 14) { cout << 14; nr14--; numar--; cards[i] = 0; cout.flush(); ok = 1; break; } if (ok == 0) for (i = 0; i < 4; i++) if (cards[i] == 7) { cout << 7; nr7--; numar--; cards[i] = 0; cout.flush(); ok = 1; break; } if (ok == 0) { cout << 0; cout.flush(); } } else { if (numar < 4) { cout << 0; cout.flush(); } else{ for (i = 0; i < 4; i++) if (cards[i] != 10 && cards[i] != 14 && cards[i] != 7 && cards[i]!= 0) { cout << cards[i]; numar--; cards[i] = 0; cout.flush(); break; } if (i == 4) { cout << 7; numar--; nr7--; cout.flush(); cards[0] = 0; } } } cin >> x; if (x > 6) { goto repeta; } else { opt = x; if (opt == 4) { cin >> m >> n; cout << "\n"; } else { cin >> y; for (i = 1; i <= y; i++) { cin >> z; for (j = 0; j < 4; j++) if (cards[j] == 0) { cards[j] = z; break; } } } } } } } }