2009-01-22 19:12:55來源不明

2008 NPSC F. 優惠方案II

0.6*5的倍數都是整數。

0.812*250的倍數都是整數

也就是有循環+1的情況

/*************************************************************/

  1. #include<stdio.h>      
  2. #include<stdlib.h>   
  3. main()   
  4. {   
  5.   int a,b;   
  6.   int smile,lion;   
  7.   int x,y;   
  8.   while(scanf("%d",&a)==1)   
  9.    {       
  10.     for(b=0;b<a;b++)   
  11.      {                       
  12.       scanf("%d %d",&x,&y);   
  13.       smile=(x/2*y)*6/10+(x/2*y%5!=0)+(x-x/2)*y;   
  14.        lion=x*y*812/1000+((x*y)%250!=0);   
  15.        if(lion>smile) printf(": )\n");   
  16.        else if(smile>lion) printf("8-12=-4\n");   
  17.        else printf("SAME\n");     
  18.      }   
  19.    }     
  20.   return 0;        

/*********************************************/

測資很大 優化輸入

#include<stdio.h>  
#include<stdlib.h>
main()
{
  int a,b;
  int smile,lion;
  int x,y;
  while(scanf("%d",&a)==1)
   {   
    getchar();
    for(b=0;b<a;b++)
     {                   
      int num=0,temp=0,flag=0,temp1[3],top=0;
       while(temp=getchar())
        {
          if(temp<=57&&temp>=48)
           {num=num*10+temp-48;flag=1;}
          else
           {
             if(flag==1)
               {
                 temp1[top]=num;
                 top++;
                 num=0;
                 if(top==2) break;
                 flag=0;
               }
           }
      }
      x=temp1[0];
      y=temp1[1];
      smile=(x/2*y)*6/10+(x/2*y%5!=0)+(x-x/2)*y;
       lion=x*y*812/1000+((x*y)%250!=0);
       if(lion>smile) printf(": )\n");
       else if(smile>lion) printf("8-12=-4\n");
       else printf("SAME\n"); 
     }
   } 
  return 0;    
}