411A - Password Check
In the first problem you should correctly implement what was written in statement. It could be done like this:
string s; cin >> s; bool upper = false, lower = false, digit = false; for(int i= 0; i < s.size(); ++i){ if(isupper(s[i])) upper = true; if(islower(s[i])) lower = true; if(isdigit(s[i])) digit = true; } puts((upper && lower && digit && s.size() >= 5) ? "Correct" : "Too weak");
411B - Multi-core Processor
In this problem you should read the statement carefully, consider some principal cases and implement them in your program. The author's solution is:
- We will store array$blockedCell[]$ (value in cell i equals 1 if this cell is blocked, 0 otherwise), blockedCore[]$ (value in cell i equals 0, if this core is not blocked and the number cycle when this core is blocked otherwise).
- Consider all cycles from the first to the last. Consider the cycle number k.
- Consider all processors and calc what cells will blocked on the cycle k. Set values one to corresponding cells of array blockedCell[]
- Then for each core i if conditions blockedCore[i] = 0 and blockedCell[x[i][k]] = 1 meet then core i is blocked on cycle k. Set blockedCore[i] = k.
411C - Kicker
To solve this problem you should use logic (mathematic logic) :] Logic says:
- If for some arrangement of the first team there is no arrangement to have even a draw then the first team is guaranteed to win.
- If for any arrangement of the first team there is some arrangement for the second team when the second team wins then the second team is guaranteed to win.
- Otherwise nobody is guaranteed to win. The answer is Draw.
This logic should be implemented in your program. I could be done considering each arrangement of every team.
Tutorual?