SRM520 Div1 Easy(250), Div2 Medium(500) SRMCodingPhase

SRMCodingPhase

解く問題を決めれば、できるだけ難しい問題にluckを使うのが最善。

#include <vector>
using namespace std;

class SRMCodingPhase{public:
int countScore( vector <int> points, vector <int> skills, int luck )
{
    int ans = 0;

    for ( int s=0; s<8; s++ )
    {
        int p = 0;
        int time = 0;
        int l = luck;

        for ( int i=2; i>=0; i-- )
        if ( s>>i&1 )
        {
            int x = min( l, skills[i]-1 );
            p += points[i] - (2<<i)*(skills[i]-x);
            time += skills[i]-x;
            l -= x;
        }

        if ( time <= 75 )
            ans = max( ans, p );
    }

    return ans;
}};