#include <stdio.h>
#include <omp.h>
#define ARRAY_SIZE 1000
#define SEARCH_VALUE 42
int linearSearch(int *arr, int size, int target) {
int result = -1;
#pragma omp parallel for
for (int i = 0; i <size; ++i) {
if (arr[i] == target) {
#pragma omp critical
{
result = i;
}
}
}
return result;
}
int main() {
int array[ARRAY_SIZE];
for (int i = 0; i < ARRAY_SIZE; ++i) {
array[i] = i;
}
int position = linearSearch(array, ARRAY_SIZE, SEARCH_VALUE);
if (position != -1) {
printf("Value %d found at position %d.\n", SEARCH_VALUE, position);
} else {
printf("Value %d not found in the array.\n", SEARCH_VALUE);
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxvbXAuaD4KI2RlZmluZSBBUlJBWV9TSVpFIDEwMDAKI2RlZmluZSBTRUFSQ0hfVkFMVUUgNDIKaW50IGxpbmVhclNlYXJjaChpbnQgKmFyciwgaW50IHNpemUsIGludCB0YXJnZXQpIHsKaW50IHJlc3VsdCA9IC0xOwojcHJhZ21hIG9tcCBwYXJhbGxlbCBmb3IKZm9yIChpbnQgaSA9IDA7IGkgPHNpemU7ICsraSkgewppZiAoYXJyW2ldID09IHRhcmdldCkgewojcHJhZ21hIG9tcCBjcml0aWNhbAp7CnJlc3VsdCA9IGk7IAp9Cn0KfQpyZXR1cm4gcmVzdWx0Owp9CmludCBtYWluKCkgewppbnQgYXJyYXlbQVJSQVlfU0laRV07Cgpmb3IgKGludCBpID0gMDsgaSA8IEFSUkFZX1NJWkU7ICsraSkgewphcnJheVtpXSA9IGk7Cn0KaW50IHBvc2l0aW9uID0gbGluZWFyU2VhcmNoKGFycmF5LCBBUlJBWV9TSVpFLCBTRUFSQ0hfVkFMVUUpOwppZiAocG9zaXRpb24gIT0gLTEpIHsKcHJpbnRmKCJWYWx1ZSAlZCBmb3VuZCBhdCBwb3NpdGlvbiAlZC5cbiIsIFNFQVJDSF9WQUxVRSwgcG9zaXRpb24pOwp9IGVsc2UgewpwcmludGYoIlZhbHVlICVkIG5vdCBmb3VuZCBpbiB0aGUgYXJyYXkuXG4iLCBTRUFSQ0hfVkFMVUUpOwp9CnJldHVybiAwOwp9Cg==