This solution is outdated. To rescore this solution, sign in.
Test | Status | Code Input and Output |
---|---|---|
1 | Pass |
% read player id and voted problem number
lines = textread('vote.m', '%s');
player.id = str2num(regexp(lines{end}, '\d+', 'match', 'once'));
player.vote = uint16(vote());
assignin('caller', 'score', player.vote);
%
% get web pages data
% 1 - voted problem,
% 2 - this problem player correct solutions,
% 3 - voted problem solutions - problemexists
url = 'http://www.mathworks.com/matlabcentral/cody/problems/';
url1 = sprintf('%s%d', url, player.vote);
url2 = sprintf( ...
'%s%d/solutions?sort=&term=player_id:%d+status:Correct', ...
url, 2954, player.id);
url3 = sprintf('%s%d/solutions', url, player.vote);
[html1, ~] = urlread(url1);
[html2, ~] = urlread(url2);
[~,status] = urlread(url3);
%
% get voted problem creator id, name and problem description
creator.id = str2num(regexp(html1, ...
'(?<=Created by.*?players/)\d*', ...
'match', 'once'));
creator.name = regexp(html1, ...
'(?<=Created by <.*?>)[^<]*', ...
'match', 'once');
creator.description = regexp(html1, ...
'(?<=Problem \d+\. )[^<>]*', ...
'match', 'once');
%
% get some player previous votes data
player.countVotes = numel(regexpi(html2, 'solution \d+'));
player.prevDateStr = regexp(html2, ...
'(?<=Submitted on )\d+ ... \d{4}', ...
'match', 'once');
if isempty(player.prevDateStr)
player.prevDateNum = 0;
else
player.prevDateNum = datenum(player.prevDateStr);
end
player.thisDateNum = floor(now);
player.nextDateStr = regexprep(datestr(player.prevDateNum+7, ...
'dd mmmm yyyy'), ...
'^0', '');
%
% check if vote is valid and manage errors
if status
if ~isequal(creator.id,player.id)
if player.countVotes < 10 || player.thisDateNum >= ...
player.prevDateNum + 7
fprintf(['Congratulations! You have voted for ' ...
'"Problem %d. %s" created by %s.\n'], ...
player.vote, creator.description, creator.name);
else
error(['You voted %d times already. \n' ...
'You can submit next vote on %s or later.'], ...
player.countVotes, player.nextDateStr);
end
else
error(['You cannot vote for problems created' ...
' by yourself. Sorry.']);
end
elseif player.vote
error('There is no "Problem %d." on Cody yet.', player.vote);
else
disp('Got what you want, size 0, but one vote is gone.');
end
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
v =
2000
Congratulations! You have voted for "Problem 2000. Number of problems" created by J-G van der Toorn.
|
Sum all integers from 1 to 2^n
8420 Solvers
348 Solvers
203 Solvers
Solving Quadratic Equations (Version 1)
427 Solvers
1098 Solvers
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!