#include <iostream>
#include <vector>
#include <string>
using namespace std;
struct User {
string login;
string password;
int role;
};
User* authorize_range_for(vector<User> users, string login, string password)
{
for (auto user : users) {
if (user.login == login && user.password == password) {
return &user;
}
}
return NULL;
}
User* authorize(vector<User> users, string login, string password)
{
for (int i = 0; i < users.size(); i++) {
if (users[i].login == login && users[i].password == password) {
return &users[i];
}
}
return NULL;
}
int main() {
vector<User> users {
{"admin", "admin", 1},
{"user", "user", 0}
};
User* user = authorize(users, "admin", "admin");
cout << user->role << "\n";
user = authorize_range_for(users, "admin", "admin");
cout << user->role << "\n";
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8c3RyaW5nPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnN0cnVjdCBVc2VyIHsKCXN0cmluZyBsb2dpbjsKCXN0cmluZyBwYXNzd29yZDsKCWludCByb2xlOwp9OwoKVXNlciogYXV0aG9yaXplX3JhbmdlX2Zvcih2ZWN0b3I8VXNlcj4gdXNlcnMsIHN0cmluZyBsb2dpbiwgc3RyaW5nIHBhc3N3b3JkKQp7Cglmb3IgKGF1dG8gdXNlciA6IHVzZXJzKSB7CgkJaWYgKHVzZXIubG9naW4gPT0gbG9naW4gJiYgdXNlci5wYXNzd29yZCA9PSBwYXNzd29yZCkgewoJCQlyZXR1cm4gJnVzZXI7CgkJfQoJfQoJcmV0dXJuIE5VTEw7Cn0KClVzZXIqIGF1dGhvcml6ZSh2ZWN0b3I8VXNlcj4gdXNlcnMsIHN0cmluZyBsb2dpbiwgc3RyaW5nIHBhc3N3b3JkKQp7Cglmb3IgKGludCBpID0gMDsgaSA8IHVzZXJzLnNpemUoKTsgaSsrKSB7CgkJaWYgKHVzZXJzW2ldLmxvZ2luID09IGxvZ2luICYmIHVzZXJzW2ldLnBhc3N3b3JkID09IHBhc3N3b3JkKSB7CgkJCXJldHVybiAmdXNlcnNbaV07CgkJfQoJfQoJcmV0dXJuIE5VTEw7Cn0KCmludCBtYWluKCkgewoJdmVjdG9yPFVzZXI+IHVzZXJzIHsKCQl7ImFkbWluIiwgImFkbWluIiwgMX0sCgkJeyJ1c2VyIiwgInVzZXIiLCAwfQoJfTsKCVVzZXIqIHVzZXIgPSBhdXRob3JpemUodXNlcnMsICJhZG1pbiIsICJhZG1pbiIpOwoJY291dCA8PCB1c2VyLT5yb2xlIDw8ICJcbiI7Cgl1c2VyID0gYXV0aG9yaXplX3JhbmdlX2Zvcih1c2VycywgImFkbWluIiwgImFkbWluIik7Cgljb3V0IDw8IHVzZXItPnJvbGUgPDwgIlxuIjsKCXJldHVybiAwOwp9