#include <iostream>
#include <fstream>
#include <string>
using namespace std;
bool getKey(const string &keyval, size_t start, size_t& second, string &value);
int main()
{
int count = 0;
string url = "https://www.google.com/search?q=where+food+near+me&oq=where+food+near+me&aqs=chrome..69i57j0l5.8995j0j9&sourceid=chrome&ie=UTF-8";
string value;
size_t res = 0;
while ((count < 20) && getKey(url, res, res, value)) {
cout << value << endl;
++count;
}
return 0;
}
bool getKey(const string &keyval, size_t start, size_t& second, string &result)
{
result = "";
if (start == 0) {
if ((start = keyval.find('?')) == string::npos)
return false;
++start;
}
else if (start >= keyval.size())
return false;
size_t end = keyval.find('&', start);
if (end != string::npos) {
result = keyval.substr(start, end - start);
second = end + 1;
}
else {
result = keyval.substr(start);
second = keyval.size();
}
return true;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8ZnN0cmVhbT4KI2luY2x1ZGUgPHN0cmluZz4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmJvb2wgZ2V0S2V5KGNvbnN0IHN0cmluZyAma2V5dmFsLCBzaXplX3Qgc3RhcnQsIHNpemVfdCYgc2Vjb25kLCBzdHJpbmcgJnZhbHVlKTsKCmludCBtYWluKCkKewogICAgaW50IGNvdW50ID0gMDsKICAgIHN0cmluZyB1cmwgPSAiaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9zZWFyY2g/cT13aGVyZStmb29kK25lYXIrbWUmb3E9d2hlcmUrZm9vZCtuZWFyK21lJmFxcz1jaHJvbWUuLjY5aTU3ajBsNS44OTk1ajBqOSZzb3VyY2VpZD1jaHJvbWUmaWU9VVRGLTgiOwogICAgc3RyaW5nIHZhbHVlOwogICAgc2l6ZV90IHJlcyA9IDA7CiAgICB3aGlsZSAoKGNvdW50IDwgMjApICYmIGdldEtleSh1cmwsIHJlcywgcmVzLCB2YWx1ZSkpIHsKICAgICAgICBjb3V0IDw8IHZhbHVlIDw8IGVuZGw7CiAgICAgICAgKytjb3VudDsKICAgIH0KCiAgICByZXR1cm4gMDsKfQoKYm9vbCBnZXRLZXkoY29uc3Qgc3RyaW5nICZrZXl2YWwsIHNpemVfdCBzdGFydCwgc2l6ZV90JiBzZWNvbmQsIHN0cmluZyAmcmVzdWx0KQp7CiAgICByZXN1bHQgPSAiIjsKCiAgICBpZiAoc3RhcnQgPT0gMCkgewogICAgICAgIGlmICgoc3RhcnQgPSBrZXl2YWwuZmluZCgnPycpKSA9PSBzdHJpbmc6Om5wb3MpCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICArK3N0YXJ0OwogICAgfQogICAgZWxzZSBpZiAoc3RhcnQgPj0ga2V5dmFsLnNpemUoKSkKICAgICAgICByZXR1cm4gZmFsc2U7CgogICAgc2l6ZV90IGVuZCA9IGtleXZhbC5maW5kKCcmJywgc3RhcnQpOwogICAgaWYgKGVuZCAhPSBzdHJpbmc6Om5wb3MpIHsKICAgICAgICByZXN1bHQgPSBrZXl2YWwuc3Vic3RyKHN0YXJ0LCBlbmQgLSBzdGFydCk7CiAgICAgICAgc2Vjb25kID0gZW5kICsgMTsKICAgIH0KICAgIGVsc2UgewogICAgICAgIHJlc3VsdCA9IGtleXZhbC5zdWJzdHIoc3RhcnQpOwogICAgICAgIHNlY29uZCA9IGtleXZhbC5zaXplKCk7CiAgICB9CiAgICByZXR1cm4gdHJ1ZTsKfQo=