#include <windows.h>
#include <iostream>
#include <fstream>
#include <string>
#define ADDITION 1
#define MULTIPLICATION 2
#define SUBSTRACTION 3
HANDLE hSemaphore;
volatile double shared_resource;
DWORD WINAPI calculate(LPVOID arg)
{
std::ifstream file((char *)arg);
int operation, number;
double acc = 0;
file >> operation;
file >> acc;
while (file >> number)
{
switch (operation)
{
case ADDITION:
acc += number;
break;
case MULTIPLICATION:
acc *= number;
break;
case SUBSTRACTION:
acc -= number;
break;
default:
break;
}
}
ReleaseSemaphore(hSemaphore, 1, NULL);
return 0;
}
int main()
{
}
I2luY2x1ZGUgPHdpbmRvd3MuaD4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8ZnN0cmVhbT4KI2luY2x1ZGUgPHN0cmluZz4KCiNkZWZpbmUgQURESVRJT04JCTEKI2RlZmluZSBNVUxUSVBMSUNBVElPTgkyCiNkZWZpbmUgU1VCU1RSQUNUSU9OCTMKCkhBTkRMRSBoU2VtYXBob3JlOwp2b2xhdGlsZSBkb3VibGUgc2hhcmVkX3Jlc291cmNlOwoKRFdPUkQgV0lOQVBJIGNhbGN1bGF0ZShMUFZPSUQgYXJnKQp7CglzdGQ6Omlmc3RyZWFtIGZpbGUoKGNoYXIgKilhcmcpOwoJaW50IG9wZXJhdGlvbiwgbnVtYmVyOwoJZG91YmxlIGFjYyA9IDA7CgoJZmlsZSA+PiBvcGVyYXRpb247CglmaWxlID4+IGFjYzsKCXdoaWxlIChmaWxlID4+IG51bWJlcikKCXsKCQlzd2l0Y2ggKG9wZXJhdGlvbikKCQl7CgkJY2FzZSBBRERJVElPTjoKCQkJYWNjICs9IG51bWJlcjsKCQkJYnJlYWs7CgkJY2FzZSBNVUxUSVBMSUNBVElPTjoKCQkJYWNjICo9IG51bWJlcjsKCQkJYnJlYWs7CgkJY2FzZSBTVUJTVFJBQ1RJT046CgkJCWFjYyAtPSBudW1iZXI7CgkJCWJyZWFrOwoJCWRlZmF1bHQ6CgkJCWJyZWFrOwoJCX0KCX0KCVJlbGVhc2VTZW1hcGhvcmUoaFNlbWFwaG9yZSwgMSwgTlVMTCk7CglyZXR1cm4gMDsKfQoKaW50IG1haW4oKQp7Cgp9