Submission #892412

# Submission time Handle Problem Language Result Execution time Memory
892412 2023-12-25T10:22:47 Z abcvuitunggio Ancient Books (IOI17_books) C++17
0 / 100
10 ms 26196 KB
#include "books.h"
#include <bits/stdc++.h>
using namespace std;
int vis[1000001],l[1000001];
vector <pair <int, pair <int, int>>> e;
vector <int> ve[1000001];
int f(int i){
    return (l[i]==i?i:l[i]=f(l[i]));
}
int unite(int i, int j){
    i=f(i);
    j=f(j);
    if (i==j)
        return 0;
    l[j]=i;
    return 1;
}
long long minimum_walk(vector <int> p, int s){
    int x=0,n=p.size();
    iota(l,l+n,0);
    long long d=0;
    for (int i=0;i<n;i++){
        if (!vis[i]){
            int x=i;
            while (true){
                vis[x]=1;
                ve[i].push_back(x);
                d+=abs(x-p[x]);
                x=p[x];
                if (x==i)
                    break;
            }
        }
    }
    for (int i=0;i<n;i++)
        sort(ve[i].begin(),ve[i].end());
    for (int i=0;i<n;i++)
        for (int j=0;j<n;j++){
            if (i==j||ve[i].size()<2||ve[j].size()<2)
                continue;
            int mn=1e9;
            for (int k:ve[j]){
                if (k>=ve[i][0]&&k<=ve[i].back()){
                    mn=0;
                    break;
                }
                mn=min(mn,abs(k-ve[i][0]));
                mn=min(mn,abs(k-ve[i].back()));
            }
            e.push_back({mn,{i,j}});
        }
    sort(e.begin(),e.end());
    for (auto [i,j]:e)
        x+=i*unite(j.first,j.second);
    return x*2+d;
}
# Verdict Execution time Memory Grader output
1 Incorrect 5 ms 25180 KB 3rd lines differ - on the 1st token, expected: '6', found: '4'
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 5 ms 25180 KB 3rd lines differ - on the 1st token, expected: '6', found: '4'
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 5 ms 25180 KB 3rd lines differ - on the 1st token, expected: '6', found: '4'
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 10 ms 26196 KB 3rd lines differ - on the 1st token, expected: '3304', found: '2744'
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 5 ms 25180 KB 3rd lines differ - on the 1st token, expected: '6', found: '4'
2 Halted 0 ms 0 KB -