提交记录 16662


用户 题目 状态 得分 用时 内存 语言 代码长度
NanoApe 2002. 【NOIP2018】旅行(加强版) Wrong Answer 0 48.973 ms 8 KB C++11 1.97 KB
提交时间 评测时间
2021-10-06 12:42:53 2021-10-06 12:42:59
// #include <cstdio>
// #include <algorithm>

// int d[11];

// // rotate: 42.204 ms / 417.029 ms
// void rotate(const int size)
// {
//     int tot = 1, i, *ps = d, *pt, *pi, *pe = d+size;
//     for (i = 0; i < size; i++) d[i] = i+1, tot *= i+1;
//     pi = ps; pt = (ps==d ? d+(size-1) : ps-1); while (pi != pt) { printf("%d ", *pi); if (++pi == pe) pi = d; } printf("%d\n", *pi);
//     while (--tot)
//     {
//         if (*ps == size) {
//             i = size - 1;
//             pt = ps + 1; if (pt == pe) pt = d;
//             while (*pt == i) {
//                 i--;
//                 if (++pt == pe) pt = d;
//             }
//             *ps = *pt;
//             while (i < size) {
//                 if (++ps == pe) ps = d;
//                 *ps = ++i;
//             }
//         }
//         if (++ps == pe) ps = d;
//         pi = ps; pt = (ps==d ? d+(size-1) : ps-1); while (pi != pt) { printf("%d ", *pi); if (++pi == pe) pi = d; } printf("%d\n", *pi);
//     }
// }

// int main()
// {
//     // rotate(5);
//     rotate(9);
//     // rotate(11);
//     return 0;
// }


#include <cstdio>
#include <algorithm>

#define SIZE 11

int d[11], tot = 1, i, *ps = d, *pt, *pi, *pe = d+SIZE;

// rotate: 42.204 ms / 417.029 ms
int main()
{
    for (i = 0; i < SIZE; i++) d[i] = i+1, tot *= i+1;
    // pi = ps; pt = (ps==d ? d+(SIZE-1) : ps-1); while (pi != pt) { printf("%d ", *pi); if (++pi == pe) pi = d; } printf("%d\n", *pi);
    while (--tot)
    {
        if (*ps == SIZE) {
            i = SIZE - 1;
            pt = ps + 1; if (pt == pe) pt = d;
            while (*pt == i) {
                i--;
                if (++pt == pe) pt = d;
            }
            *ps = *pt;
            while (i < SIZE) {
                if (++ps == pe) ps = d;
                *ps = ++i;
            }
        }
        if (++ps == pe) ps = d;
        // pi = ps; pt = (ps==d ? d+(SIZE-1) : ps-1); while (pi != pt) { printf("%d ", *pi); if (++pi == pe) pi = d; } printf("%d\n", *pi);
    }
    return 0;
}

CompilationN/AN/ACompile OKScore: N/A

Testcase #148.967 ms8 KBWrong AnswerScore: 0

Testcase #248.97 ms8 KBWrong AnswerScore: 0

Testcase #348.965 ms8 KBWrong AnswerScore: 0

Testcase #448.969 ms8 KBWrong AnswerScore: 0

Testcase #548.968 ms8 KBWrong AnswerScore: 0

Testcase #648.737 ms8 KBWrong AnswerScore: 0

Testcase #748.965 ms8 KBWrong AnswerScore: 0

Testcase #848.97 ms8 KBWrong AnswerScore: 0

Testcase #948.969 ms8 KBWrong AnswerScore: 0

Testcase #1048.761 ms8 KBWrong AnswerScore: 0

Testcase #1148.97 ms8 KBWrong AnswerScore: 0

Testcase #1248.964 ms8 KBWrong AnswerScore: 0

Testcase #1348.97 ms8 KBWrong AnswerScore: 0

Testcase #1448.973 ms8 KBWrong AnswerScore: 0

Testcase #1548.968 ms8 KBWrong AnswerScore: 0

Testcase #1648.968 ms8 KBWrong AnswerScore: 0

Testcase #1748.97 ms8 KBWrong AnswerScore: 0

Testcase #1848.97 ms8 KBWrong AnswerScore: 0

Testcase #1948.972 ms8 KBWrong AnswerScore: 0

Testcase #2048.966 ms8 KBWrong AnswerScore: 0


Judge Duck Online | 评测鸭在线
Server Time: 2026-03-18 20:46:14 | Loaded in 1 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠