Submission #1227405

#TimeUsernameProblemLanguageResultExecution timeMemory
1227405MarwenElarbiTwo Transportations (JOI19_transportations)C++17
8 / 100
167 ms27844 KiB
#include "Azer.h"
#include <bits/stdc++.h>
using namespace std;
// A
#define fi first
#define se second
namespace {

    int n_a;
    int i=0,j=0,a=0,b=0,z=0;
    int variable_example[2005];
    int count;
    vector<pair<int,int>> adj[2005];
    int dis[2005];
    void djikastra(){
        priority_queue<pair<int,int>,vector<pair<int,int>>,greater<pair<int,int>>> pq;
        pq.push({0,0});
        dis[0]=0;
        while(!pq.empty()){
            int x=pq.top().se;
            int d=pq.top().fi;
            pq.pop();
            if(dis[x]<d) continue;
            for(auto u:adj[x]){
                int cur=u.se+d;
                if(dis[u.fi]<=cur) continue;
                pq.push({cur,u.fi});
                dis[u.fi]=cur;
            }
        }
    }

}  // namespace

    void InitA(int N, int A, std::vector<int> U, std::vector<int> V,std::vector<int> C) {
      n_a = N;
      for (int i = 0; i < N; ++i)
      {
        dis[i]=1e9;
      }
      for (int i = 0; i < A; ++i)
      {
        adj[U[i]].push_back({V[i],C[i]});
        adj[V[i]].push_back({U[i],C[i]});
      }
    }

    void ReceiveA(bool x) {
      if(0<=j&&j<12){
        a+=(x<<j);
        j++;
      }else if(12<=j&&j<24){
        b+=(x<<(j-12));
        j++;
      }else if(24<=j&&j<33){
        z+=(x<<(j-24));
        j++;
      }
      if(j==33){
        //cout << a <<" "<<b<<" "<<z<<endl;
        adj[a].push_back({b,z});
        adj[b].push_back({a,z});
        j=0;a=0;b=0;z=0;
      }

    }

    std::vector<int> Answer() {
        djikastra();
        std::vector<int> ans(n_a);
        for (int k = 0; k < n_a; ++k) {
            ans[k] = dis[k];
        }
        return ans;
    }
#include "Baijan.h"
#include <bits/stdc++.h>
using namespace std;
// B
#define fi first
#define se second
namespace {
    

}  // namespace

    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)
      {
        for (int j = 0; j < 12; ++j)
        {
            SendB((1<<j)&S[i]);
        }
        for (int j = 0; j < 12; ++j)
        {
            SendB((1<<j)&T[i]);
        }
        for (int j = 0; j < 9; ++j)
        {
            SendB((1<<j)&D[i]);
        }
      }
    }

    void ReceiveB(bool y) {
      return;
    }
#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...