답안 #943703

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
943703 2024-03-11T18:19:10 Z yeediot Two Transportations (JOI19_transportations) C++17
0 / 100
437 ms 58920 KB
#include "Azer.h"
#include<bits/stdc++.h>
using namespace std;
#define S second
#define F first
namespace {
    const int mxn=5e5+5;
    int cur=0,bit=0,n=0,cnt=0,prv=0,first=1;
    vector<pair<int,int>>adj[mxn];
    vector<int>dis;
    vector<bool>vis;
    pair<int,int>mn={(1<<9)-1,(1<<9)-1};
    void send(int a,int b){
        b--;
        for(;b>=0;b--){
            SendA(a>>b&1);
        }
    }
    void gmn(){
        dis[mn.S]=prv+mn.F;
        prv=dis[mn.S];
        cnt--;
        vis[mn.S]=1;
        for(auto [u,d]:adj[mn.S]){
            dis[u]=min(dis[u],dis[mn.S]+d);
        }
        mn={(1<<9)-1,(1<<9)-1};
        for(int i=0;i<n;i++){
            if(vis[i])continue;
            mn=min(mn,{dis[i]-prv,i});
        }
        if(cnt)send(mn.F,9);
    }
    void gdis(){
        if(cur==(1<<9)-1){
            send(mn.S,11);
            gmn();
        }
        else{
            mn.F=cur;
            first=0;
        }
        cur=bit=0;
    }
    void gid(){
        mn.S=cur;
        gmn();
        cur=bit=0;
        first=1;
    }
}  // namespace
void InitA(int N, int A, std::vector<int> U, std::vector<int> V,std::vector<int> C) {
    for(int i=0;i<A;i++){
        adj[V[i]].push_back({U[i],C[i]});
        adj[U[i]].push_back({V[i],C[i]});
    }
    n=N;
    cnt=n;
    dis=vector<int>(N,1e9);
    vis=vector<bool>(N,0);
    dis[0]=0;
    vis[0]=1;
    cnt--;
    int v=0;
    for(auto [u,d]:adj[v]){
        dis[u]=min(dis[u],dis[v]+d);
    }
    for(int i=0;i<n;i++){
        if(vis[i])continue;
        mn=min(mn,{dis[i],i});
    }
    send(mn.F,9);
}

void ReceiveA(bool x) {
    cur=cur*2+x;
    bit++;
    if(bit==9 and first==1){
        gdis();
    }
    else if(bit==11){
        gid();
    }
}

std::vector<int> Answer() {
    return dis;
}
#include "Baijan.h"
#include<bits/stdc++.h>
using namespace std;
#define S second
#define F first
namespace {
    const int mxn=5e5+5;
    int cur=0,bit=0,n=0,cnt=0,prv=0,first=1;
    vector<pair<int,int>>adj[mxn];
    vector<int>dis;
    vector<bool>vis;
    pair<int,int>mn={(1<<9)-1,(1<<9)-1};
    void send(int a,int b){
        b--;
        for(;b>=0;b--){
            SendB(a>>b&1);
        }
    }
    void gmn(){
        dis[mn.S]=prv+mn.F;
        prv=dis[mn.S];
        vis[mn.S]=1;
        for(auto [u,d]:adj[mn.S]){
            dis[u]=min(dis[u],dis[mn.S]+d);
        }
        mn={(1<<9)-1,(1<<9)-1};
        for(int i=0;i<n;i++){
            if(vis[i])continue;
            mn=min(mn,{dis[i]-prv,i});
        }
    }
    void gdis(){
        if(mn.F>cur){
            mn.F=cur;
            send((1<<9)-1,9);
            first=0;
        }
        else{
            send(mn.F,9);
            send(mn.S,11);
            gmn();
        }
        cur=bit=0;
    }
    void gid(){
        mn.S=cur;
        gmn();
        cur=bit=0;
        first=1;
    }
}  // namespace
void InitB(int N, int B, std::vector<int> U, std::vector<int> V,std::vector<int> C) {
    for(int i=0;i<B;i++){
        adj[V[i]].push_back({U[i],C[i]});
        adj[U[i]].push_back({V[i],C[i]});
    }
    n=N;
    dis=vector<int>(N,1e9);
    vis=vector<bool>(N,0);
    dis[0]=0;
    vis[0]=1;
    int v=0;
    for(auto [u,d]:adj[v]){
        dis[u]=min(dis[u],dis[v]+d);
    }
    for(int i=0;i<n;i++){
        if(vis[i])continue;
        mn=min(mn,{dis[i],i});
    }
}
void ReceiveB(bool x) {
    cur=cur*2+x;
    bit++;
    if(bit==9 and first==1){
        gdis();
    }
    else if(bit==11){
        gid();
    }
}

Compilation message

Baijan.cpp:8:25: warning: '{anonymous}::cnt' defined but not used [-Wunused-variable]
    8 |     int cur=0,bit=0,n=0,cnt=0,prv=0,first=1;
      |                         ^~~
# 결과 실행 시간 메모리 Grader output
1 Correct 423 ms 24264 KB Output is correct
2 Runtime error 172 ms 12172 KB Execution killed with signal 13
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 213 ms 12168 KB Execution killed with signal 13
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 437 ms 24332 KB Output is correct
2 Runtime error 224 ms 12168 KB Execution killed with signal 13
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 164 ms 24288 KB Output is correct
2 Correct 202 ms 24264 KB Output is correct
3 Correct 228 ms 37140 KB Output is correct
4 Correct 156 ms 24324 KB Output is correct
5 Correct 210 ms 33660 KB Output is correct
6 Correct 176 ms 24216 KB Output is correct
7 Correct 172 ms 24468 KB Output is correct
8 Correct 214 ms 24216 KB Output is correct
9 Correct 204 ms 41820 KB Output is correct
10 Correct 228 ms 41816 KB Output is correct
11 Correct 311 ms 58920 KB Output is correct
12 Correct 287 ms 54408 KB Output is correct
13 Correct 161 ms 24228 KB Output is correct
14 Runtime error 184 ms 12164 KB Execution killed with signal 13
15 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 164 ms 24288 KB Output is correct
2 Correct 202 ms 24264 KB Output is correct
3 Correct 228 ms 37140 KB Output is correct
4 Correct 156 ms 24324 KB Output is correct
5 Correct 210 ms 33660 KB Output is correct
6 Correct 176 ms 24216 KB Output is correct
7 Correct 172 ms 24468 KB Output is correct
8 Correct 214 ms 24216 KB Output is correct
9 Correct 204 ms 41820 KB Output is correct
10 Correct 228 ms 41816 KB Output is correct
11 Correct 311 ms 58920 KB Output is correct
12 Correct 287 ms 54408 KB Output is correct
13 Correct 161 ms 24228 KB Output is correct
14 Runtime error 184 ms 12164 KB Execution killed with signal 13
15 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 164 ms 24288 KB Output is correct
2 Correct 202 ms 24264 KB Output is correct
3 Correct 228 ms 37140 KB Output is correct
4 Correct 156 ms 24324 KB Output is correct
5 Correct 210 ms 33660 KB Output is correct
6 Correct 176 ms 24216 KB Output is correct
7 Correct 172 ms 24468 KB Output is correct
8 Correct 214 ms 24216 KB Output is correct
9 Correct 204 ms 41820 KB Output is correct
10 Correct 228 ms 41816 KB Output is correct
11 Correct 311 ms 58920 KB Output is correct
12 Correct 287 ms 54408 KB Output is correct
13 Correct 161 ms 24228 KB Output is correct
14 Runtime error 184 ms 12164 KB Execution killed with signal 13
15 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 423 ms 24264 KB Output is correct
2 Runtime error 172 ms 12172 KB Execution killed with signal 13
3 Halted 0 ms 0 KB -