Best Cow Line

记得删掉时间测试

#include<cstdio>
#include<iostream>
#include<ctime>
using namespace std;

char s[2005];

int main(void)
{
    int n;
    cin >> n;
    getchar();
    for (int i = 0; i < n; i++)
    {
        scanf("%c", &s[i]);
        getchar();
    }
    int a = 0, b = n - 1;//分别用a和b指向字符的首尾
    int ans = 0;
    while (a <= b)
    {
        bool left = false;//当前面的字符比后面的小时,输出小字符并且将指向首部的变量向后移动一位,前面字符比后面大时相反,如果相等就比较他们的下一个字符
        for (int i = 0; a + i <= b; i++)//使用布尔运算来判断比直接输出速度快
        {
            if (s[a + i] < s[b - i])
            {
                left = true;
                break;
            }
            if (s[a + i] > s[b - i])
            {
                left = false;
                break;
            }
        }
        ans++;
        if (left)putchar(s[a++]);
        else putchar(s[b--]);
        if (ans % 80 == 0)cout << endl;
    }
    cout << endl;
    printf("%.2lf", (double)clock() / CLOCKS_PER_SEC);
    return 0;
}

 

posted @ 2021-02-07 17:08  loliconsk  阅读(72)  评论(0)    收藏  举报