제출 #1334178

#제출 시각아이디문제언어결과실행 시간메모리
1334178ofozTwo Transportations (JOI19_transportations)C++20
0 / 100
127 ms10060 KiB
#include "Azer.h"
#include <bits/stdc++.h>
using namespace std;
#define vc vector<char>
#define vi vector<int>
#define vii vector<vi>
#define viii vector<vii>
#define viiii vector<viii>
#define viiiii vector<viiii>
#define vb vector<bool>
#define vbb vector<vb>
#define pi pair<int, int>
#define ppi pair<pair<int, int>, int>
#define pip pair<int, pair<int, int>>
#define endl '\n'
#define Edge pair<pair<int, int>, int>
#define X first.first
#define Y first.second
namespace {
const int inf = 1e8;
int n, cnt;
int cur = 0, bt = 0;
vector<vector<pi>> adj;
vi dist;
vi arr;
int szB = -1;
}
void dijkstra(int s, vi& dist, vector<vector<pi>>& adj) {
    multiset<pi> st;
    dist[s] = 0;
    st.insert({0, s});
    
    while (!st.empty()) {
        int v, d;
        tie(d, v) = *st.begin();
        st.erase(st.begin());
        for (pi p : adj[v]) {
            int to, w;
            tie(to, w) = p;
            if (dist[v] + w > dist[to]) continue;
            st.erase({dist[to], to});
            dist[to] = dist[v] + w;
            st.insert({dist[to], to});
        }
    }
}

void InitA(int N, int A, std::vector<int> U, std::vector<int> V, std::vector<int> C) {
    
    n = N;
    dist.resize(n, inf);
    adj.resize(n);
    
    for (int i = 0; i < A; i++) { adj[U[i]].push_back(make_pair(V[i], C[i])); adj[V[i]].push_back(make_pair(U[i], C[i])); }
    

}

void ReceiveA(bool x) {
    
    cur = cur + ((1<<bt) * x);
    bt++;
    if (bt == 20) {
        if (szB == -1) szB = cur;
        else arr.push_back(cur);
        bt = cur = 0;
    }
    if (szB != -1 && arr.size() == 3*szB) {
        for (int i = 0; i < arr.size(); i += 3) {
            // cerr << arr[i] << ' ' << arr[i+1] << ' ' << arr[i+2] << endl;
            adj[arr[i]].push_back({arr[i+1], arr[i+2]});
            adj[arr[i+1]].push_back({arr[i], arr[i+2]});
        }
        
        dijkstra(0, dist, adj);
        Answer();
    }
}

std::vector<int> Answer() {
  return dist;
}
#include "Baijan.h"
#include <bits/stdc++.h>
using namespace std;
#define vc vector<char>
#define vi vector<int>
#define vii vector<vi>
#define viii vector<vii>
#define viiii vector<viii>
#define viiiii vector<viiii>
#define vb vector<bool>
#define vbb vector<vb>
#define pi pair<int, int>
#define ppi pair<pair<int, int>, int>
#define pip pair<int, pair<int, int>>
#define endl '\n'

void sendInt(int x) {
    for (int i = 0; i < 20; i++) SendB(x & (1<<i));
}

void InitB(int N, int B, std::vector<int> S, std::vector<int> T, std::vector<int> D) {
    sendInt(B);
    for (int i = 0; i < B; i++) {
        sendInt(S[i]);
        sendInt(T[i]);
        sendInt(D[i]);
    }
}

void ReceiveB(bool y) {

}

#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...