2020牛客暑期多校训练营(第一场)F Infinite String Comparision

 

 

 

 

 

 

 

最后有个>没截全。

————————————————————————————————————————————————————————————————————————

签到题,全场唯一会做。思路是对的,代码码歪了。

直接补是不行的,样例3很明显了。重复两次再补足就ok了。但是码歪了。

看了一下别人的代码,有个比较巧妙的点,就是重复的部分直接取余,就不用进行字符串操作了。

还有一种很神奇的解法,p=a+b , q=b+a,然后比较一下pq就好了,没想清楚,以后满满想。

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <stack>
#include <queue>
#include <map>
#include <vector>
#include <set>
#include <deque>
#include <cfloat>
#include <algorithm>
typedef long long ll;
using namespace std;

int gcd(int x,int y)
{
    return y?gcd(y,x%y):x;
}

int lcm(int x,int y)
{
    return x/gcd(x,y)*y;
}
int n,m,mod;

char a[10000000],b[10000000];

int main()
{
    while(scanf("%s",a)!=EOF)
    {
        scanf("%s",b);
        int lena=strlen(a);
        int lenb=strlen(b);

        int tag=0;

        int mx=max(lena,lenb);
        for(int i=0;i<mx*2;i++)
        {
            int aa=i%lena;
            int bb=i%lenb;
            if(a[aa]<b[bb])
            {
                printf("<\n");
                tag=1;
                break;
            }
            if(a[aa]>b[bb])
            {
                printf(">\n");
                tag=1;
                break;
            }
        }
        if(tag==0)
        {
            printf("=\n");
        }

    }
    return 0;
}
View Code

 

posted @ 2020-07-13 00:19  璃灵  阅读(197)  评论(0)    收藏  举报