#include <iostream>
#include <chrono>
#include <thread>
#include <mutex>
#include <cmath>
using namespace std;
mutex g_lock;
int n;
void first(){
g_lock.lock();
cout << "Enter the number of terms of Fibonacci series you want" << endl;
cin >> n;
g_lock.unlock();
}
void second(){
int c,first = 0, second = 1, next;
g_lock.lock();
for ( c = 0 ; c < n ; c++ )
{
if ( c <= 1 )
next = c;
else
{
next = first + second;
first = second;
second = next;
}
cout << next << endl;
}
g_lock.unlock();
}
int main()
{
std::thread thr2(second);
std::thread thr1(first);
thr1.detach();
thr2.join();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPiAKI2luY2x1ZGUgPGNocm9ubz4gCiNpbmNsdWRlIDx0aHJlYWQ+IAojaW5jbHVkZSA8bXV0ZXg+IAojaW5jbHVkZSA8Y21hdGg+IAp1c2luZyBuYW1lc3BhY2Ugc3RkOyAKbXV0ZXggZ19sb2NrOyAKaW50IG47CnZvaWQgZmlyc3QoKXsKCmdfbG9jay5sb2NrKCk7CmNvdXQgPDwgIkVudGVyIHRoZSBudW1iZXIgb2YgdGVybXMgb2YgRmlib25hY2NpIHNlcmllcyB5b3Ugd2FudCIgPDwgZW5kbDsKY2luID4+IG47CmdfbG9jay51bmxvY2soKTsKCn0Kdm9pZCBzZWNvbmQoKXsKaW50IGMsZmlyc3QgPSAwLCBzZWNvbmQgPSAxLCBuZXh0OwoKZ19sb2NrLmxvY2soKTsKCmZvciAoIGMgPSAwIDsgYyA8IG4gOyBjKysgKQp7CmlmICggYyA8PSAxICkKbmV4dCA9IGM7CmVsc2UKewpuZXh0ID0gZmlyc3QgKyBzZWNvbmQ7CmZpcnN0ID0gc2Vjb25kOwpzZWNvbmQgPSBuZXh0Owp9CmNvdXQgPDwgbmV4dCA8PCBlbmRsOwp9CmdfbG9jay51bmxvY2soKTsKCgp9CmludCBtYWluKCkKewoKCnN0ZDo6dGhyZWFkIHRocjIoc2Vjb25kKTsgCnN0ZDo6dGhyZWFkIHRocjEoZmlyc3QpOyAKCnRocjEuZGV0YWNoKCk7IAp0aHIyLmpvaW4oKTsgCgpyZXR1cm4gMDsKfQo=