SRM477 Div1 Easy(250), Div2 Medium(500) Islands

Islands

#include <iostream>
#include <string>
#include <vector>

using namespace std;

class Islands
{
public:
    int beachLength( vector <string> kingdom );
};

int Islands::beachLength( vector <string> kingdom )
{
    int h = (int)kingdom.size();
    int w = (int)kingdom[0].length();

    int l = 0;

    for ( int y=0; y<h; y++ )
    for ( int x=0; x<w; x++ )
    {
        if ( x > 0  &&  kingdom[y][x] != kingdom[y][x-1] ) l++;
        if ( y > 0  &&  kingdom[y][x] != kingdom[y-1][x] ) l++;
        if ( y % 2 == 0 )
        {
            if ( y > 0  &&  x > 0 && kingdom[y][x] != kingdom[y-1][x-1] ) l++;
        }
        else
        {
            if ( y > 0  &&  x+1 < w && kingdom[y][x] != kingdom[y-1][x+1] ) l++;
        }
    }

    return l;
}