提交记录 16663


用户 题目 状态 得分 用时 内存 语言 代码长度
NanoApe 2002. 【NOIP2018】旅行(加强版) Wrong Answer 0 43.243 ms 8 KB C++11 1.98 KB
提交时间 评测时间
2021-10-06 12:44:01 2021-10-06 12:44:05
// #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];

// rotate: 42.204 ms / 417.029 ms
int main()
{
    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);
    }
    return 0;
}

CompilationN/AN/ACompile OKScore: N/A

Testcase #143.239 ms8 KBWrong AnswerScore: 0

Testcase #243.241 ms8 KBWrong AnswerScore: 0

Testcase #343.243 ms8 KBWrong AnswerScore: 0

Testcase #443.238 ms8 KBWrong AnswerScore: 0

Testcase #543.24 ms8 KBWrong AnswerScore: 0

Testcase #643.242 ms8 KBWrong AnswerScore: 0

Testcase #743.239 ms8 KBWrong AnswerScore: 0

Testcase #843.237 ms8 KBWrong AnswerScore: 0

Testcase #943.241 ms8 KBWrong AnswerScore: 0

Testcase #1043.239 ms8 KBWrong AnswerScore: 0

Testcase #1143.24 ms8 KBWrong AnswerScore: 0

Testcase #1243.238 ms8 KBWrong AnswerScore: 0

Testcase #1343.242 ms8 KBWrong AnswerScore: 0

Testcase #1443.24 ms8 KBWrong AnswerScore: 0

Testcase #1543.242 ms8 KBWrong AnswerScore: 0

Testcase #1643.238 ms8 KBWrong AnswerScore: 0

Testcase #1743.239 ms8 KBWrong AnswerScore: 0

Testcase #1843.24 ms8 KBWrong AnswerScore: 0

Testcase #1943.24 ms8 KBWrong AnswerScore: 0

Testcase #2043.24 ms8 KBWrong AnswerScore: 0


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