QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#879847#2711. Loop Townhhoppitree0 2098ms8192kbC++201.2kb2025-02-02 16:30:422025-02-02 16:30:42

Judging History

This is the latest submission verdict.

  • [2025-02-02 16:30:42]
  • Judged
  • Verdict: 0
  • Time: 2098ms
  • Memory: 8192kb
  • [2025-02-02 16:30:42]
  • Submitted

answer

#include <bits/stdc++.h>

using namespace std;

constexpr int N = 1e6 + 5;

int inv[N], a[N], s[N * 2];

signed main() {
    int n; scanf("%d%*d", &n);
    vector< pair<int, int> > p[2];
    for (int i = 1, x, y; i <= n; ++i) scanf("%d%d", &x, &y), p[0].push_back({x, i}), p[1].push_back({y, i});
    sort(p[0].begin(), p[0].end()), sort(p[1].begin(), p[1].end());
    for (int i = 1; i <= n; ++i) inv[p[0][i - 1].second] = i;
    for (int i = 1; i <= n; ++i) a[inv[p[1][i - 1].second]] = i;
    long long res = 1e18;
    for (int t = 1; t <= n; ++t) {
        rotate(a + 1, a + 2, a + n + 1);
        vector< pair<int, int> > seg;
        for (int i = 1; i <= n; ++i) {
            if (a[i] < i) seg.push_back({i, a[i] + n});
            else seg.push_back({i, a[i]}), seg.push_back({i + n, a[i] + n});
        }
        sort(seg.begin(), seg.end());
        long long sum = 0;
        for (int i = 1; i <= n * 2; ++i) s[i] = 0;
        for (auto x : seg | views::reverse | views::values) {
            for (int i = x; i; i -= i & -i) sum += s[i];
            for (int i = x; i <= n * 2; i += i & -i) ++s[i];
        }
        res = min(res, sum);
    }
    printf("%lld\n", res);
    return 0;
}

詳細信息

Subtask #1:

score: 0
Wrong Answer

Test #1:

score: 12
Accepted
time: 0ms
memory: 8008kb

input:

3 100
10 50
30 20
60 40

output:

0

result:

ok single line: '0'

Test #2:

score: 12
Accepted
time: 0ms
memory: 8016kb

input:

4 100
30 70
10 12
60 75
90 50

output:

1

result:

ok single line: '1'

Test #3:

score: 0
Wrong Answer
time: 2098ms
memory: 8192kb

input:

5000 1000000000
122673490 785087980
471383263 619641996
802868008 404957433
840100498 514750784
862185816 340264735
40401408 302319993
217914697 633645728
306953710 1370207
588914847 392017693
99375184 951900586
632042853 192334004
282625056 271661393
702036110 528038472
658508052 910479247
79240500...

output:

5150453

result:

wrong answer 1st lines differ - expected: '4136135', found: '5150453'

Subtask #2:

score: 0
Skipped

Dependency #1:

0%

Subtask #3:

score: 0
Skipped

Dependency #1:

0%