#include <iostream>
using namespace std;
int result[4][4];
int score[4];
int fav;
int wins=0;
void print_result()
{
for (int i=0; i<4; i++)
{
for (int j=0; j<4; j++)
{
cout << result[i][j] <<" ";
}
cout << endl;
}
}
pair <int,int> next_match()
{
for (int i=0; i<3; i++)
{
for (int j=i+1; j<4; j++)
{
if (result[i][j] == -1) return make_pair<int,int>(i,j);
}
}
return make_pair<int,int>(-1,-1);
}
bool win()
{
for (int i; i< 4; i++)
{
if (i!= fav && score[fav]<= score[i] ) return false;
}
return true;
}
void add_score(int a, int b, int match_result)
{
if (match_result == 0)
{
score[a] += 3;
}
if (match_result == 1)
{
score[a] += 1;
score[b] += 1;
}
if (match_result == 2)
{
score[b] += 3;
}
}
void sub_score(int a, int b, int match_result)
{
if (match_result == 0)
{
score[a] -= 3;
}
else if (match_result == 1)
{
score[a] -= 1;
score[b] -= 1;
}
else if (match_result == 2)
{
score[b] -= 3;
}
}
void eval_next_match()
{
pair <int,int> match;
match=next_match();
cout << "New " <<match.first << " matching " << match.second << endl;
//cout << " 1: "<< score[0]<< " 2: "<< score[1]<< " 3: "<< score[2]<< " 4: "<< score[3]<<endl;
if (match.first == -1 && match.second==-1)
{
cout << "Number of WINS " <<wins<< endl;
if (win()) wins++;
return;
}
for (int i = 0; i < 3; i++)
{
result[match.first][match.second]=i;
add_score(match.first,match.second, result[match.first][match.second]);
print_result();
cout << "IF "<< result[match.first][match.second] << endl;
cout << " 1: "<< score[0]<< "\n 2: "<< score[1]<< "\n 3: "<< score[2]<< "\n 4: "<< score[3]<<endl;
eval_next_match();
sub_score(match.first,match.second, result[match.first][match.second]);
result[match.first][match.second]=-1;
}
return;
}
int main()
{
int m, temp;
int a,b,c,d;
for (int i = 0; i < 4; i++)
{
score[i]=0;
for (int j=0; j< 4 ; j++)
{
result[i][j]=-1;
}
}
cin >> fav>> m;
cout << fav <<" "<< m << endl;
cout << " 1: "<< score[0]<< "\n 2: "<< score[1]<< "\n 3: "<< score[2]<< "\n 4: "<< score[3]<<endl;
for (int i = 0; i < m; i++)
{
cin >> a >> b >> c >>d;
cout << a<< " "<< b <<" "<< c <<" " << d<< endl;
if (a > b)
{
temp =a;
a=b;
b=a;
temp=c;
c=d;
d=c;
}
if (c > d)
{
result[a-1][b-1]=0;
}
else if (c == d)
{
result[a-1][b-1]=1;
}
else if (c < d)
{
result[a-1][b-1]=2;
}
add_score(a-1,b-1, result[a-1][b-1]);
cout << "Played " <<a << " matching " << b << endl;
cout << " result "<< result[a-1][b-1] << endl;
cout << " 1: "<< score[0]<< "\n 2: "<< score[1]<< "\n 3: "<< score[2]<< "\n 4: "<< score[3]<<endl;
}
print_result();
eval_next_match();
cout << wins << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKaW50IHJlc3VsdFs0XVs0XTsKaW50IHNjb3JlWzRdOwppbnQgZmF2OwppbnQgd2lucz0wOwp2b2lkIHByaW50X3Jlc3VsdCgpCnsKICAgIGZvciAoaW50IGk9MDsgaTw0OyBpKyspCiAgICB7CiAgICAgICAgZm9yIChpbnQgaj0wOyBqPDQ7IGorKykKICAgICAgICB7CiAgICAgICAgICAgIGNvdXQgPDwgcmVzdWx0W2ldW2pdIDw8IiAiOwogICAgICAgIH0KICAgIGNvdXQgPDwgZW5kbDsKICAgIH0KICAgCn0KCnBhaXIgPGludCxpbnQ+IG5leHRfbWF0Y2goKQp7CiAgICBmb3IgKGludCBpPTA7IGk8MzsgaSsrKQogICAgewogICAgICAgIGZvciAoaW50IGo9aSsxOyBqPDQ7IGorKykKICAgICAgICB7CiAgICAgICAgICAgIGlmIChyZXN1bHRbaV1bal0gPT0gLTEpIHJldHVybiBtYWtlX3BhaXI8aW50LGludD4oaSxqKTsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gbWFrZV9wYWlyPGludCxpbnQ+KC0xLC0xKTsKfQpib29sIHdpbigpCnsKICAgIGZvciAoaW50IGk7IGk8IDQ7IGkrKykKICAgIHsKICAgICAgICBpZiAoaSE9IGZhdiAmJiBzY29yZVtmYXZdPD0gc2NvcmVbaV0gKSByZXR1cm4gZmFsc2U7CiAgICB9CiAgICByZXR1cm4gdHJ1ZTsKfQp2b2lkIGFkZF9zY29yZShpbnQgYSwgaW50IGIsIGludCBtYXRjaF9yZXN1bHQpCnsKICAgIGlmIChtYXRjaF9yZXN1bHQgPT0gMCkgCiAgICB7CiAgICAgICAgc2NvcmVbYV0gKz0gMzsKICAgIH0KICAgICAgICBpZiAobWF0Y2hfcmVzdWx0ID09IDEpIAogICAgewogICAgICAgIHNjb3JlW2FdICs9IDE7CiAgICAgICAgc2NvcmVbYl0gKz0gMTsKICAgIH0KICAgIGlmIChtYXRjaF9yZXN1bHQgPT0gMikgCiAgICB7CiAgICAgICAgc2NvcmVbYl0gKz0gMzsKICAgIH0KfQp2b2lkIHN1Yl9zY29yZShpbnQgYSwgaW50IGIsIGludCBtYXRjaF9yZXN1bHQpCnsKICAgIGlmIChtYXRjaF9yZXN1bHQgPT0gMCkgCiAgICB7CiAgICAgICAgc2NvcmVbYV0gLT0gMzsKICAgIH0KICAgIGVsc2UgICBpZiAobWF0Y2hfcmVzdWx0ID09IDEpIAogICAgewogICAgICAgIHNjb3JlW2FdIC09IDE7CiAgICAgICAgc2NvcmVbYl0gLT0gMTsKICAgIH0KICAgIGVsc2UgaWYgKG1hdGNoX3Jlc3VsdCA9PSAyKSAKICAgIHsKICAgICAgICBzY29yZVtiXSAtPSAzOwogICAgfQp9CnZvaWQgZXZhbF9uZXh0X21hdGNoKCkKewogICAgcGFpciA8aW50LGludD4gbWF0Y2g7CiAgICBtYXRjaD1uZXh0X21hdGNoKCk7CiAgICBjb3V0IDw8ICJOZXcgIiA8PG1hdGNoLmZpcnN0IDw8ICIgICBtYXRjaGluZyAgIiA8PCBtYXRjaC5zZWNvbmQgPDwgZW5kbDsKICAgIC8vY291dCA8PCAiICAgMTogICI8PCBzY29yZVswXTw8ICIgICAyOiAgIjw8IHNjb3JlWzFdPDwgIiAgIDM6ICAiPDwgc2NvcmVbMl08PCAiICAgNDogICI8PCBzY29yZVszXTw8ZW5kbDsKICAgIGlmIChtYXRjaC5maXJzdCA9PSAtMSAmJiBtYXRjaC5zZWNvbmQ9PS0xKQogICAgewogICAgICAgIGNvdXQgPDwgIk51bWJlciBvZiBXSU5TICIgPDx3aW5zPDwgZW5kbDsKICAgICAgICBpZiAod2luKCkpIHdpbnMrKzsKICAgICAgICByZXR1cm47CiAgICB9CiAgICBmb3IgKGludCBpID0gMDsgaSA8IDM7IGkrKykKICAgIHsKICAgICAgICByZXN1bHRbbWF0Y2guZmlyc3RdW21hdGNoLnNlY29uZF09aTsKICAgICAgICBhZGRfc2NvcmUobWF0Y2guZmlyc3QsbWF0Y2guc2Vjb25kLCByZXN1bHRbbWF0Y2guZmlyc3RdW21hdGNoLnNlY29uZF0pOwogICAgICAgIHByaW50X3Jlc3VsdCgpOwogICAgICAgIGNvdXQgPDwgIklGICI8PCByZXN1bHRbbWF0Y2guZmlyc3RdW21hdGNoLnNlY29uZF0gPDwgZW5kbDsKICAgICAgICAgICBjb3V0IDw8ICIgICAxOiAgIjw8IHNjb3JlWzBdPDwgIlxuICAgMjogICI8PCBzY29yZVsxXTw8ICJcbiAgIDM6ICAiPDwgc2NvcmVbMl08PCAiXG4gICA0OiAgIjw8IHNjb3JlWzNdPDxlbmRsOwogICAgICAgIGV2YWxfbmV4dF9tYXRjaCgpOwogICAgICAgIHN1Yl9zY29yZShtYXRjaC5maXJzdCxtYXRjaC5zZWNvbmQsIHJlc3VsdFttYXRjaC5maXJzdF1bbWF0Y2guc2Vjb25kXSk7CiAgICAgICAgcmVzdWx0W21hdGNoLmZpcnN0XVttYXRjaC5zZWNvbmRdPS0xOwogICAgfQogICAgcmV0dXJuOwp9CmludCBtYWluKCkKewogICBpbnQgbSwgdGVtcDsKICAgCiAgIGludCBhLGIsYyxkOwogICBmb3IgKGludCBpID0gMDsgaSA8IDQ7IGkrKykKICAgewogICAJc2NvcmVbaV09MDsKICAgCWZvciAoaW50IGo9MDsgajwgNCA7IGorKykKICAgCXsgCiAgIAkJcmVzdWx0W2ldW2pdPS0xOwogICAJfQkKICAgfQogICAKICAgY2luID4+IGZhdj4+IG07CiAgIGNvdXQgPDwgZmF2IDw8IiAgIjw8IG0gPDwgZW5kbDsKICAgICAgICAgICBjb3V0IDw8ICIgICAxOiAgIjw8IHNjb3JlWzBdPDwgIlxuICAgMjogICI8PCBzY29yZVsxXTw8ICJcbiAgIDM6ICAiPDwgc2NvcmVbMl08PCAiXG4gICA0OiAgIjw8IHNjb3JlWzNdPDxlbmRsOwoKICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtOyBpKyspCiAgIHsKICAgICAgIGNpbiA+PiBhID4+IGIgPj4gYyA+PmQ7CiAgICAgICBjb3V0IDw8IGE8PCAiICI8PCBiIDw8IiAiPDwgYyA8PCIgIiA8PCBkPDwgZW5kbDsKICAgICAgIGlmIChhID4gYikKICAgICAgIHsKICAgICAgICAgICB0ZW1wID1hOwogICAgICAgICAgIGE9YjsKICAgICAgICAgICBiPWE7CiAgICAgICAgICAgdGVtcD1jOwogICAgICAgICAgIGM9ZDsKICAgICAgICAgICBkPWM7CiAgICAgICB9CiAgICAgICBpZiAoYyA+IGQpIAogICAgICAgewogICAgICAgICAgICAgICByZXN1bHRbYS0xXVtiLTFdPTA7CiAgICAgICB9CiAgICAgICBlbHNlIGlmIChjID09IGQpCiAgICAgICB7CiAgICAgICAgICAgcmVzdWx0W2EtMV1bYi0xXT0xOwogICAgICAgfQogICAgICAgZWxzZSBpZiAoYyA8IGQpIAogICAgICAgewogICAgICAgICAgICAgICByZXN1bHRbYS0xXVtiLTFdPTI7CiAgICAgICB9CiAgICAgICBhZGRfc2NvcmUoYS0xLGItMSwgcmVzdWx0W2EtMV1bYi0xXSk7CiAgICAgICBjb3V0IDw8ICJQbGF5ZWQgICAgICIgPDxhIDw8ICIgICBtYXRjaGluZyAgIiA8PCBiIDw8IGVuZGw7CgogICAgICAgY291dCA8PCAiICByZXN1bHQgICAiPDwgcmVzdWx0W2EtMV1bYi0xXSA8PCBlbmRsOyAKICAgICAgICAgICBjb3V0IDw8ICIgICAxOiAgIjw8IHNjb3JlWzBdPDwgIlxuICAgMjogICI8PCBzY29yZVsxXTw8ICJcbiAgIDM6ICAiPDwgc2NvcmVbMl08PCAiXG4gICA0OiAgIjw8IHNjb3JlWzNdPDxlbmRsOwoKICAgfQogICBwcmludF9yZXN1bHQoKTsKICAgZXZhbF9uZXh0X21hdGNoKCk7CiAgIGNvdXQgPDwgd2lucyA8PCBlbmRsOyAKICAgCiAgIHJldHVybiAwOwp9