#include <iostream>
#include <time.h>
#include <windows.h>
using namespace std;
clock_t start,stop;
double czas;
int GRA(int a, int b)
{
if (a==b) return a+b;
else if ((a==1)||(b==1)) return 2;
else if ((a==2)&&(b%2==0)) return 4;
else if ((a==2)&&(b%2==1)) return 2;
else if ((b==2)&&(a%2==0)) return 4;
else if ((b==2)&&(a%2==1)) return 2;
else if (a<b)
{
b=b-a;
return GRA(a,b);
}
else if (a>b)
{
a=a-b;
return GRA(a,b);
}
}
int main()
{
int ile_testow;
// int GRACZ_A=0, GRACZ_B=0;
cout<<"ile testow"<<endl;
cin>>ile_testow;
int *tablica_a;
tablica_a=new int [ile_testow];
int *tablica_b;
tablica_b = new int[ile_testow];
//inicjowanie generatora
srand(time(NULL));
//wczytywanie losowych liczb do tablicy1
for (int i=0; i<ile_testow; i++)
{
tablica_a[i] = rand()%10000+1;
}
for (int i=0; i<ile_testow; i++)
{
tablica_b[i] = rand()%10000+1;
}
start = clock();
for (int i=0; i<ile_testow; i++)
{
//cout<<"GRACZ_A: "<<tablica_a[i]<<" "<<"GRACZ_B: "<<tablica_b[i]<<endl;
//cout<<
GRA(tablica_a[i], tablica_b[i]);
//<<endl;
}
stop = clock();
czas = (double)(stop-start)/CLOCKS_PER_SEC;
cout <<endl<<endl<<endl<<"CZAS OBROBIENIA "<<ile_testow<<" gier "<<czas<< " s"<<endl;
delete [] tablica_a;
delete [] tablica_b;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dGltZS5oPgojaW5jbHVkZSA8d2luZG93cy5oPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKY2xvY2tfdCBzdGFydCxzdG9wOwpkb3VibGUgY3phczsKCmludCBHUkEoaW50IGEsIGludCBiKQp7CiAgICBpZiAoYT09YikgcmV0dXJuIGErYjsKICAgIGVsc2UgaWYgKChhPT0xKXx8KGI9PTEpKSAgIHJldHVybiAyOwogICAgZWxzZSBpZiAoKGE9PTIpJiYoYiUyPT0wKSkgcmV0dXJuIDQ7CiAgICBlbHNlIGlmICgoYT09MikmJihiJTI9PTEpKSByZXR1cm4gMjsKICAgIGVsc2UgaWYgKChiPT0yKSYmKGElMj09MCkpIHJldHVybiA0OwogICAgZWxzZSBpZiAoKGI9PTIpJiYoYSUyPT0xKSkgcmV0dXJuIDI7CiAgICBlbHNlIGlmIChhPGIpCiAgICB7CiAgICAgICAgYj1iLWE7CiAgICAgICAgcmV0dXJuIEdSQShhLGIpOwogICAgfQogICAgZWxzZSBpZiAoYT5iKQogICAgewogICAgICAgIGE9YS1iOwogICAgICAgIHJldHVybiBHUkEoYSxiKTsKICAgIH0KfQoKaW50IG1haW4oKQp7CiAgICBpbnQgaWxlX3Rlc3RvdzsKICAgLy8gaW50IEdSQUNaX0E9MCwgR1JBQ1pfQj0wOwogICAgY291dDw8ImlsZSB0ZXN0b3ciPDxlbmRsOwogICAgY2luPj5pbGVfdGVzdG93OwogICAgaW50ICp0YWJsaWNhX2E7CiAgICB0YWJsaWNhX2E9bmV3IGludCBbaWxlX3Rlc3Rvd107CiAgICBpbnQgKnRhYmxpY2FfYjsKICAgIHRhYmxpY2FfYiA9IG5ldyBpbnRbaWxlX3Rlc3Rvd107CgogICAgLy9pbmljam93YW5pZSBnZW5lcmF0b3JhCgogICAgc3JhbmQodGltZShOVUxMKSk7CgogICAgLy93Y3p5dHl3YW5pZSBsb3Nvd3ljaCBsaWN6YiBkbyB0YWJsaWN5MQogICAgZm9yIChpbnQgaT0wOyBpPGlsZV90ZXN0b3c7IGkrKykKICAgIHsKICAgICAgICB0YWJsaWNhX2FbaV0gPSByYW5kKCklMTAwMDArMTsKICAgIH0KICAgZm9yIChpbnQgaT0wOyBpPGlsZV90ZXN0b3c7IGkrKykKICAgIHsKICAgICAgICB0YWJsaWNhX2JbaV0gPSByYW5kKCklMTAwMDArMTsKICAgIH0KCiAgICBzdGFydCA9IGNsb2NrKCk7CgogICAgZm9yIChpbnQgaT0wOyBpPGlsZV90ZXN0b3c7IGkrKykKICAgIHsKICAgICAgICAvL2NvdXQ8PCJHUkFDWl9BOiAiPDx0YWJsaWNhX2FbaV08PCIgIjw8IkdSQUNaX0I6ICI8PHRhYmxpY2FfYltpXTw8ZW5kbDsKICAgICAgICAvL2NvdXQ8PAogICAgICAgIEdSQSh0YWJsaWNhX2FbaV0sIHRhYmxpY2FfYltpXSk7CiAgICAgICAgLy88PGVuZGw7CiAgICB9CiAgICBzdG9wID0gY2xvY2soKTsKICAgIGN6YXMgPSAoZG91YmxlKShzdG9wLXN0YXJ0KS9DTE9DS1NfUEVSX1NFQzsKICAgIGNvdXQgPDxlbmRsPDxlbmRsPDxlbmRsPDwiQ1pBUyBPQlJPQklFTklBICI8PGlsZV90ZXN0b3c8PCIgZ2llciAiPDxjemFzPDwgIiBzIjw8ZW5kbDsKICAgIGRlbGV0ZSBbXSB0YWJsaWNhX2E7CiAgICBkZWxldGUgW10gdGFibGljYV9iOwoKICAgIHJldHVybiAwOwoKfQo=