답안 #938203

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
938203 2024-03-05T02:35:13 Z LittleOrange Coin Collecting (JOI19_ho_t4) C++17
0 / 100
1 ms 348 KB
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
struct pos{
    ll x,y;
    bool operator<(const pos &o) const{
        return x!=o.x?x<o.x:y<o.y;
    }
};
ll dis(pos a, pos b){
    return abs(a.x-b.x)+abs(a.y-b.y);
}
int main(){
    ios::sync_with_stdio(0);cin.tie(0);
    ll n;
    cin >> n;
    vector<pos> a(n*2);
    for(pos &o : a) cin >> o.x >> o.y;
    sort(a.begin(),a.end());
    ll ans = 0;
    vector<pos> b(n*2);
    for(ll i = 0;i<n;i++){
        b[i<<1] = {i+1,1};
        b[i<<1|1] = {i+1,2};
    }
    for(ll j = 0;j<3;j++){
        for(ll i = 0;i+1<n*2;i++){
            if (dis(a[i],b[i+1])+dis(a[i+1],b[i])<dis(a[i],b[i])+dis(a[i+1],b[i+1])){
                swap(a[i],a[i+1]);
            }
        }
    }
    for(ll i = 0;i<n*2;i++) ans += dis(a[i],b[i]);
    cout << ans << "\n";
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Incorrect 0 ms 348 KB Output isn't correct
7 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Incorrect 0 ms 348 KB Output isn't correct
7 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Incorrect 0 ms 348 KB Output isn't correct
7 Halted 0 ms 0 KB -