1 条题解

  • 0
    @ 2025-8-24 21:18:03

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar chen_zhe
    Aya 敲可爱的~

    搬运于2025-08-24 21:18:02,当前版本为作者最后更新于2025-03-10 16:46:57,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    欢迎报名洛谷网校,期待和大家一起进步!

    本题考察字符串。

    如果读入的不等式中有大于的也有小于的会比较复杂,因此我们应当先把不等号的方向统一。我们这里不妨都统一成大于号。

    接着考虑三个砝码重量的相对大小。我们不妨考虑以下三个情况:

    A>B
    A>C
    B>C
    

    A>B
    B>C
    C>A
    

    A>B
    A>C
    A>B
    

    第一种情况是可以推断出相对重量大小:C<B<A。第二种情况会出现矛盾(A 大于 B,B 大于 C,理论上 A 要大于 C,但是测出了 C 大于 A,因此是矛盾的)。第三种情况无法推断出 B 和 C 的相对重量大小。

    更进一步地说,能够推断出相对大小的形式只有以下三种(假设最重的是 A):

    A>B
    A>C
    B>C
    

    A>B
    B>C
    A>C
    

    A>B
    A>C
    B>C
    

    分成三种情况,分别判断即可。不属于三种情况的,判断为矛盾。

    参考代码(只展示关键部分):

    cin >> a >> b >> c;
    if (a[1] == '<') swap(a[0], a[2]);
    if (b[1] == '<') swap(b[0], b[2]);
    if (c[1] == '<') swap(c[0], c[2]);
    if (a[0] == b[0]) cout << c[2] << c[0] << a[0] << endl;
    else if (b[0] == c[0]) cout << a[2] << a[0] << b[0] << endl;
    else if (a[0] == c[0]) cout << b[2] << b[0] << c[0] << endl;
    else cout << "Impossible" << endl;
    
    • 1

    信息

    ID
    11672
    时间
    1000ms
    内存
    512MiB
    难度
    1
    标签
    递交数
    0
    已通过
    0
    上传者