Submission #985756

# Submission time Handle Problem Language Result Execution time Memory
985756 2024-05-18T17:06:57 Z SzymonKrzywda Two Transportations (JOI19_transportations) C++17
Compilation error
0 ms 0 KB
#include <bits/stdc++.h>
#include "Azer.h"

using namespace std;


const int BITS = 20;
int poczatek = 0;
int liczba_w;
int akt = 0;
int akt_2 = 0;
string akt_str = "";
vector<int> answer={};
int info[3];
vector<vector<pair<int,int>>> graf(500000);


void dijkstra(){
    int val,v;
    priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>>pq;
    pq.push({0,0});
    while (!pq.empty()){
        val = pq.top().first;
        v = pq.top().second;
        pq.pop();
        if (val >= answer[v]) continue;
        answer[v] = val;
        for (auto [b,val_2] : graf[v]){
            pq.push({val+val_2,b});
        }
    }
}
string decToBinary(int n)
{
    string ans = "";
    for (int i = BITS; i >= 0; i--) {
        int k = n >> i;
        if (k & 1)
            ans += "1";
        else
            ans += "0";
    }
    return ans;
}

int binaryToDecimal(string str)
{
    int dec_num = 0;
    int power = 0 ;
    int n = str.length() ; 
   
      for(int i = n-1 ; i>=0 ; i--){
      if(str[i] == '1'){
        dec_num += (1<<power) ;
      }
      power++ ; 
    }
   
    return dec_num;
}


vector<int> Answer();
void ReceiveA(bool x){
    if (x == 0) akt_str += "0";
    else akt_str += "1";
    
    if (akt_2==BITS){
        int liczba = binaryToDecimal(akt_str);

        if (poczatek==0){
            liczba_w = liczba;
        }
        else{
            if (akt==0){ // wierzcholek 1
                info[0] = liczba;
            }
            else if (akt==1){// wierzcholek 2
                info[1] = liczba;
            }
            else{ // waga
                graf[info[0]].push_back({info[1],liczba});
                poczatek += 1;
                if (poczatek==liczba_w){
                    dijkstra();
                }
            }
            akt_2 = 0;
            akt = (akt+1)%3;
        }
    }
    else akt_2 += 1;
}

void SendA(bool y);

void send(int a){
    string bin = decToBinary(a);
    for (int i=0; i<BITS+1; i++){
        SendA(bin[i]);
    }
}

void InitA(int N, int A, vector<int> U, vector<int> V, vector<int> C){
    for (int i=0; i<N; i++){
        answer.push_back(9999999);
    }
    for (int i=0; i<A; i++){
        graf[U[i]].push_back({V[i],C[i]});
    }

}

#include <bits/stdc++.h>
#include "Baijan.h"

using namespace std;
const int BITS = 20;

string decToBinary(int n)
{
    string ans = "";
    for (int i = BITS; i >= 0; i--) {
        int k = n >> i;
        if (k & 1)
            ans += "1";
        else
            ans += "0";
    }
    return ans;
}

void ReceiveB(bool y){

}

void SendB(bool x);


int send(int a){
    string bin = decToBinary(a);
    for (int i=0; i<BITS+1; i++){
        SendB(bin[i]);
    }
}
void InitB(int N, int B, std::vector<int> S, std::vector<int> T, std::vector<int> D){
    for (int i=0; i<B; i++){
        send(S[i]);
        send(T[i]);
        send(D[i]);
    }

}

Compilation message

/usr/bin/ld: /tmp/ccvwvjmu.o: in function `main':
grader_azer.cpp:(.text.startup+0x2af): undefined reference to `Answer()'
collect2: error: ld returned 1 exit status

Baijan.cpp: In function 'int send(int)':
Baijan.cpp:32:1: warning: no return statement in function returning non-void [-Wreturn-type]
   32 | }
      | ^