正文

PKU ACM 1319--Pipe Fitters2009-09-16 23:50:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/shao/47810.html

分享到:

 

 

#include<iostream>
#include<cmath>
using namespace std;

int grid(float width,float height)// use string ???
{
 int h=(int)height;
 int w=(int)width;
 return h*w;
}

int skew1(float width,float height)
{
 int m1=(int)(width-0.5),n1=(int)((2*(height-1)/sqrt(3.0))+1);
 int m2=(int)(height-0.5),n2=(int)((2*(width-1)/sqrt(3.0))+1);
 return m1*n1>m2*n2? m1*n1:m2*n2;
}

int skew2(float width,float height)
{
 int m1=(int)width,n1=(int)((2*(height-1)/sqrt(3.0))+1);
 int m2=(int)height,n2=(int)((2*(width-1)/sqrt(3.0))+1);
 int N1,N2;
 if(n1%2==0)
  N1=int(m1*n1-n1/2);
 else
  N1=int(m1*n1+n1/2-0.5);
 if(n2%2==0)
  N2=int(m2*n2-n2/2);
 else
  N2=int(m2*n2+n2/2-0.5);
 return N1>N2? N1:N2;
}

int main()
{
 float w,h;
 int max=0;
 while(cin>>w>>h)
 {
  if(grid(w,h)>skew1(w,h)){
   if(grid(w,h)>=skew2(w,h))
    cout<<grid(w,h)<<" grid\n";
   else
    cout<<skew2(w,h)<<" skew\n";
  }
  else
  {
   if(skew1(w,h)>skew2(w,h))
    cout<<skew1(w,h)<<" skew\n";
   else
    cout<<skew2(w,h)<<" skew\n";
  }
 }
 return 0;
}

 

 

 

阅读(1430) | 评论(1)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册