답안 #754397

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
754397 2023-06-07T16:35:23 Z Piokemon Two Transportations (JOI19_transportations) C++17
0 / 100
3 ms 656 KB
#include <bits/stdc++.h>
#include "Azer.h"
using namespace std;
typedef long long int ll;

namespace {
int n;
vector<pair<int,int>> graf[2009];
priority_queue<pair<int,int>,vector<pair<int,int>>,greater<pair<int,int>>> djikstra;
int poprz=0;
int dst[2009];
int wczyt=0,ter=0,o;
pair<int,int> cel;

void napisz(int x){
    for (int i=0;i<11;i++) SendA(x & (1<<i));
}

void nast(int v, int d){
    dst[v] = d;
    poprz = d;
    for (pair<int,int> x:graf[v]){
        if (dst[x.first] > d+x.second){
            dst[x.first] = d+x.second;
            djikstra.push({x.first,dst[x.first]});
        }
    }
    napisz(djikstra.top().first-poprz);
    o = true;
}

}  // namespace


void InitA(int N, int A, vector<int> U, vector<int> V,
           vector<int> C) {
    n = N;
    for (int x=0;x<A;x++){
        graf[U[x]].push_back({V[x],C[x]});
        graf[V[x]].push_back({U[x],C[x]});
    }
    for (int x=0;x<=n;x++) dst[x] = 1e9+9;
    nast(0,0);
}

void ReceiveA(bool x) {
    wczyt += (1<<ter) * x;
    ter++;
    if (ter==11){
        while(dst[djikstra.top().second] < djikstra.top().first) djikstra.pop();
        ter = 0;
        if (o){
            cel.first = min(wczyt,djikstra.top().first);
            if (wczyt > djikstra.top().first){
                napisz(djikstra.top().second);
                cel.second = djikstra.top().second;
                djikstra.pop();
                nast(cel.first,cel.second);
            }
        }
        else{
            cel.second = wczyt;
            djikstra.pop();
            nast(cel.first,cel.second);
        }
        wczyt = 0;
    }
}

vector<int> Answer() {
    vector<int> odp;
    for (int x=0;x<n;x++) odp.push_back(dst[x]);
    return odp;
}
#include <bits/stdc++.h>
#include "Baijan.h"
using namespace std;
typedef long long int ll;

namespace {
int n;
vector<pair<int,int>> graf[2009];
priority_queue<pair<int,int>,vector<pair<int,int>>,greater<pair<int,int>>> djikstra;
int poprz=0;
int dst[2009];
int wczyt=0,ter=0,o;
pair<int,int> cel;

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

void nast(int v, int d){
    dst[v] = d;
    poprz = d;
    for (pair<int,int> x:graf[v]){
        if (dst[x.first] > d+x.second){
            dst[x.first] = d+x.second;
            djikstra.push({x.first,dst[x.first]});
        }
    }
    napisz(djikstra.top().first-poprz);
    o = true;
}

}  // namespace



void InitB(int N, int B, vector<int> S, vector<int> T,
           vector<int> D) {
    n = N;
    for (int x=0;x<B;x++){
        graf[T[x]].push_back({S[x],D[x]});
        graf[S[x]].push_back({T[x],D[x]});
    }
    for (int x=0;x<=n;x++) dst[x] = 1e9+9;
    nast(0,0);
}

void ReceiveB(bool y) {
    wczyt += (1<<ter) * y;
    ter++;
    if (ter==11){
        while(dst[djikstra.top().second] < djikstra.top().first) djikstra.pop();
        ter = 0;
        if (o){
            cel.first = min(wczyt,djikstra.top().first);
            if (wczyt > djikstra.top().first){
                napisz(djikstra.top().second);
                cel.second = djikstra.top().second;
                djikstra.pop();
                nast(cel.first,cel.second);
            }
        }
        else{
            cel.second = wczyt;
            djikstra.pop();
            nast(cel.first,cel.second);
        }
        wczyt = 0;
    }
}
# 결과 실행 시간 메모리 Grader output
1 Runtime error 1 ms 456 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 1 ms 456 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 3 ms 656 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 1 ms 536 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 1 ms 536 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 1 ms 536 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 1 ms 456 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -