/*
留心小于1且斜放的情况
*/
#include < iostream >
#include < cmath >
#define eps 1e-6
using namespace std;
double sin60 = sqrt( 3.0 ) / 2 ;
int cal_skew( double a, double b)
{
int x, xx, y;
int skew;
if (a - 1 < - eps || b - 1 < - eps)
return 0 ;
y = ( int )((b - 1 ) / sin60 + eps) + 1 ;
x = ( int )a;
xx = ( int )(a - 0.5 + eps);
if (x == xx)
{
skew = x * y;
}
else
{
if (y % 2 == 0 )
skew = (x * 2 - 1 ) * (y / 2 );
else
skew = (x * 2 - 1 ) * ((y + 1 ) / 2 ) - (x - 1 );
}
return skew;
}
int cal_grid( double a, double b)
{
return ( int )a * ( int )b;
}
int main()
{
double a, b;
int grid, skew, skew1, skew2;
while (scanf( " %lf %lf " , & a, & b) != EOF)
{
skew1 = cal_skew(a, b);
skew2 = cal_skew(b, a);
skew = max(skew1, skew2);
grid = cal_grid(a, b);
if (grid >= skew)
printf( " %d grid\n " , grid);
else
printf( " %d skew\n " , skew);
}
return 0 ;
}
留心小于1且斜放的情况
*/
#include < iostream >
#include < cmath >
#define eps 1e-6
using namespace std;
double sin60 = sqrt( 3.0 ) / 2 ;
int cal_skew( double a, double b)
{
int x, xx, y;
int skew;
if (a - 1 < - eps || b - 1 < - eps)
return 0 ;
y = ( int )((b - 1 ) / sin60 + eps) + 1 ;
x = ( int )a;
xx = ( int )(a - 0.5 + eps);
if (x == xx)
{
skew = x * y;
}
else
{
if (y % 2 == 0 )
skew = (x * 2 - 1 ) * (y / 2 );
else
skew = (x * 2 - 1 ) * ((y + 1 ) / 2 ) - (x - 1 );
}
return skew;
}
int cal_grid( double a, double b)
{
return ( int )a * ( int )b;
}
int main()
{
double a, b;
int grid, skew, skew1, skew2;
while (scanf( " %lf %lf " , & a, & b) != EOF)
{
skew1 = cal_skew(a, b);
skew2 = cal_skew(b, a);
skew = max(skew1, skew2);
grid = cal_grid(a, b);
if (grid >= skew)
printf( " %d grid\n " , grid);
else
printf( " %d skew\n " , skew);
}
return 0 ;
}