답안 #892411

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
892411 2023-12-25T10:21:12 Z abcvuitunggio 고대 책들 (IOI17_books) C++17
0 / 100
57 ms 32204 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].empty()||ve[j].empty())
                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;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 25176 KB Output is correct
2 Correct 5 ms 25180 KB Output is correct
3 Correct 5 ms 25248 KB Output is correct
4 Correct 5 ms 25180 KB Output is correct
5 Incorrect 5 ms 25180 KB 3rd lines differ - on the 1st token, expected: '4', found: '6'
6 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 25176 KB Output is correct
2 Correct 5 ms 25180 KB Output is correct
3 Correct 5 ms 25248 KB Output is correct
4 Correct 5 ms 25180 KB Output is correct
5 Incorrect 5 ms 25180 KB 3rd lines differ - on the 1st token, expected: '4', found: '6'
6 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 25176 KB Output is correct
2 Correct 5 ms 25180 KB Output is correct
3 Correct 5 ms 25248 KB Output is correct
4 Correct 5 ms 25180 KB Output is correct
5 Incorrect 5 ms 25180 KB 3rd lines differ - on the 1st token, expected: '4', found: '6'
6 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 57 ms 32204 KB 3rd lines differ - on the 1st token, expected: '3304', found: '2744'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 25176 KB Output is correct
2 Correct 5 ms 25180 KB Output is correct
3 Correct 5 ms 25248 KB Output is correct
4 Correct 5 ms 25180 KB Output is correct
5 Incorrect 5 ms 25180 KB 3rd lines differ - on the 1st token, expected: '4', found: '6'
6 Halted 0 ms 0 KB -