BNU 51002 BQG's Complexity Analysis

模拟

#include<cstdio>
#include<cstring>
#include<cmath>
#include<vector>
#include<algorithm>
using namespace std;

const int maxn=100+10;
char t1[maxn],t2[maxn];
int g1,g2,h1,h2;



int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        g1=g2=h1=h2=0;
        scanf("%s%s",t1,t2);

        if(t1[2]=='n') g1=1;
        if(t1[3]=='^')
        {
            g1=0;
            for(int i=4;;i++)
            {
                if(t1[i]>='0'&&t1[i]<='9') g1=g1*10+t1[i]-'0';
                else break;
            }
        }

        int pos=-1;
        int len=strlen(t1);
        for(int i=0;t1[i];i++)
        {
            if(i+3<len&&t1[i]=='l'&&t1[i+1]=='o'&&t1[i+2]=='g'&&t1[i+3]=='n')
            {
                h1=1;
                pos=i+6;
                break;
            }
        }
        if(pos!=-1)
        {
            int sum=0;
            for(int i=pos;i<len;i++)
            {
                if(t1[i]>='0'&&t1[i]<='9') sum=sum*10+t1[i]-'0';
                else break;
            }
            h1=max(h1,sum);
        }


        if(t2[2]=='n') g2=1;
        if(t2[3]=='^')
        {
            g2=0;
            for(int i=4;;i++)
            {
                if(t2[i]>='0'&&t2[i]<='9') g2=g2*10+t2[i]-'0';
                else break;
            }
        }

         pos=-1;
         len=strlen(t2);
        for(int i=0;t2[i];i++)
        {
            if(i+3<len&&t2[i]=='l'&&t2[i+1]=='o'&&t2[i+2]=='g'&&t2[i+3]=='n')
            {
                h2=1;
                pos=i+6;
                break;
            }
        }
        if(pos!=-1)
        {
            int sum=0;
            for(int i=pos;i<len;i++)
            {
                if(t2[i]>='0'&&t2[i]<='9') sum=sum*10+t2[i]-'0';
                else break;
            }
            h2=max(h2,sum);
        }

      //  printf("%d %d
",g1,h1);
      //  printf("%d %d
",g2,h2);

      if(g1<g2) printf("First
");
      else if(g1>g2) printf("Second
");
      else
      {
          if(h1<h2) printf("First
");
          else if(h1>h2) printf("Second
");
          else printf("Both
");
      }

    }
    return 0;
}
原文地址:https://www.cnblogs.com/zufezzt/p/5077781.html