10700 - Camel trading

来源:互联网 发布:matlab mac 2016 破解 编辑:程序博客网 时间:2024/05/16 18:14
描述:先加后乘还是先乘后加问题,注意要用long long int#include <cstdio>#include <cstdlib>#include <cstring>char s[1010];int main(){   // freopen("a.txt","r",stdin);    int n;    scanf("%d\n",&n);    while(n--)    {        gets(s);        long long int num_min[100],num_max[100];        int max=0,min=0,flag=0;        int len=strlen(s);        for(int i=0; i<len; i++)            if(s[i]>='0'&&s[i]<='9')            {                int c=0,j;                for( j=i; j<len; j++)                    if(s[j]>='0'&&s[j]<='9') c=c*10+s[j]-'0';                    else  break;                i=j-1;                if(!flag)                {                    num_max[max++]=c;                    num_min[min++]=c;                }                else if(flag==1)                {                    num_min[min++]=c;                    num_max[max-1]=num_max[max-1]+c;                }                else if(flag==2)                {                    num_max[max++]=c;                    num_min[min-1]=num_min[min-1]*c;                }            }            else if(s[i]=='+') flag=1;            else if(s[i]=='*') flag=2;        for(int i=1; i<max; i++)            num_max[0]=num_max[0]*num_max[i];        for(int i=1; i<min; i++)            num_min[0]=num_min[0]+num_min[i];        printf("The maximum and minimum are %lld and %lld.\n",num_max[0],num_min[0]);    }    return 0;}