- #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