vijos1698题解

题目:

船体的结构是不能随意修改的..那样会破坏整艘船和谐的韵律..
虽然说.如果沿岸航行的话是不会预见太大的海浪的..但是还要小心保护轨杆和船帆..
毕竟对于小s这样的单轨帆船...轨杆和船帆如果受损的话..那一定是很危险的...

而这种危险...通常是由于在颠簸中丧失了平衡造成的..
我们把目光聚焦在轨杆的结构...对于三角帆...可以把支撑它的三根横木之间连接的地方的耦合度记为a,b,c...
每根横木的耦合度计算方式不同...并且和长度和所使用的材料也没有必然联系....
《大航海家的旅行札记》一书告诉我们..如果可以刚好满足a+b>c..a-b 当然也不局限于a与b之间...其实也就是说如果这三个数可以构成一组三角型的话.那么就认为它是平衡的..

如果因为操作不当而触礁或者其它苛刻的自然条件下...船身造成了剧烈的颠簸..
那么不仅船只可能会出现漏水的情况...支撑船帆的三根横木..之间的平衡指数也会发生复杂的变化..
...每一次可以如下估计... 
a`=b+c-a;
这个式子也适合其它两根横木...

而当a,b,c三个的数值无法构成一组三角形的时候...支撑船帆的桅杆[2]将坍塌...
我们想估计一下...这支船的轨杆最多可以承受住多少次剧烈摇晃...
这个关系到.我们可以航行到多远..


水题不解释。

但是我WA了两次,引以为戒。
第一次:==打成=

第二次:没有开long long

#include
using namespace std;
long long ans,a,b,c,ta,tb,tc;
bool ok(long long a,long long b,long long c)
{
  if (a+b<=c) return false;
  if (b+c<=a) return false;
  if (a+c<=b) return false;
  return true;
}
int main()
{
  while (scanf("%lld %lld%lld",&a,&b,&c)!=EOF) 
    {
      
      ans=-1;
      while((ok(a,b,c))&&(ans<=1000))
      {
         ans++;
         ta=a;tb=b;tc=c;
         a=tb+tc-ta;
         b=ta+tc-tb;
         c=ta+tb-tc;
      }
      if (ans>1000) printf("The voyageseemed endless...");
      else printf("%lld",ans);
      printf("\n");
    }
  return 0;
}

你可能感兴趣的:(vijos题解)