2012年1月9日 星期一

acm 10550 Combination Lock

[心得] 0.008
1.順時針轉鎖,但是實際上轉盤是逆時針轉
   假設輸入a b c d四個數字:
  a->b 是順時鐘轉, (轉盤實際是逆時針轉)
           case : a>b (a-b)*9
           case :a<b  (40-b+a)*9

  b->c 是逆時針,(轉盤實際是順時針轉)
           case : b>c (40-b+c)*9
           case:  b<c (b-c)*9
  c->d 同 a->b

#include <stdio.h>

int angle(int x,int y)
{
    if(x<y)
       return((40+x-y)*9);
    else
       return ((x-y)*9);
}


int angle_rev(int x,int y)
{
    if(x<y)
       return ((y-x)*9);
    else
       return((40-x+y)*9); 
}
int main()
{
  int a,b,c,d;
 
  while( scanf("%d %d %d %d",&a,&b,&c,&d)!=EOF)
  {
     int angle_a=1080;   
    if(a==0&&b==0&&c==0&&d==0)
      break;
    
    angle_a+=angle(a,b)+angle_rev(b,c)+angle(c,d); 
    printf("%d\n",angle_a); 
 
  }   
  system("pause");
  return 0;   
}

沒有留言:

張貼留言