답안 #943679

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
943679 2024-03-11T17:58:02 Z yeediot Two Transportations (JOI19_transportations) C++17
0 / 100
458 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,cnt;
    vector<pair<int,int>>adj[mxn];
    vector<int>dis;
    vector<bool>vis;
    int prev=0;
    bool first=1;
    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]=prev+mn.F;
        prev=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]-prev,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);
        mn=min(mn,{dis[u],u});
    }
    send(mn.F,9);
}

void ReceiveA(bool x) {
    cur=cur*2+x;
    bit++;
    if(bit==9 and first){
        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,cnt;
    vector<pair<int,int>>adj[mxn];
    vector<int>dis;
    vector<bool>vis;
    int prev=0;
    bool first=1;
    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]=prev+mn.F;
        prev=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]-prev,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);
        mn=min(mn,{dis[u],u});
    }
}
void ReceiveB(bool x) {
    cur=cur*2+x;
    bit++;
    if(bit==9 and first){
        gdis();
    }
    else if(bit==11){
        gid();
    }
}

Compilation message

Baijan.cpp:8:23: warning: '{anonymous}::cnt' defined but not used [-Wunused-variable]
    8 |     int cur=0,bit=0,n,cnt;
      |                       ^~~
# 결과 실행 시간 메모리 Grader output
1 Correct 340 ms 24264 KB Output is correct
2 Runtime error 197 ms 12168 KB Execution killed with signal 13
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 206 ms 12168 KB Execution killed with signal 13
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 458 ms 24332 KB Output is correct
2 Runtime error 191 ms 12168 KB Execution killed with signal 13
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 191 ms 24296 KB Output is correct
2 Correct 177 ms 24508 KB Output is correct
3 Correct 233 ms 36948 KB Output is correct
4 Correct 187 ms 24216 KB Output is correct
5 Correct 200 ms 33460 KB Output is correct
6 Correct 167 ms 24220 KB Output is correct
7 Correct 138 ms 24216 KB Output is correct
8 Correct 174 ms 24216 KB Output is correct
9 Correct 264 ms 41608 KB Output is correct
10 Correct 251 ms 41612 KB Output is correct
11 Correct 379 ms 58920 KB Output is correct
12 Correct 289 ms 54228 KB Output is correct
13 Correct 174 ms 24216 KB Output is correct
14 Runtime error 193 ms 12164 KB Execution killed with signal 13
15 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 191 ms 24296 KB Output is correct
2 Correct 177 ms 24508 KB Output is correct
3 Correct 233 ms 36948 KB Output is correct
4 Correct 187 ms 24216 KB Output is correct
5 Correct 200 ms 33460 KB Output is correct
6 Correct 167 ms 24220 KB Output is correct
7 Correct 138 ms 24216 KB Output is correct
8 Correct 174 ms 24216 KB Output is correct
9 Correct 264 ms 41608 KB Output is correct
10 Correct 251 ms 41612 KB Output is correct
11 Correct 379 ms 58920 KB Output is correct
12 Correct 289 ms 54228 KB Output is correct
13 Correct 174 ms 24216 KB Output is correct
14 Runtime error 193 ms 12164 KB Execution killed with signal 13
15 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 191 ms 24296 KB Output is correct
2 Correct 177 ms 24508 KB Output is correct
3 Correct 233 ms 36948 KB Output is correct
4 Correct 187 ms 24216 KB Output is correct
5 Correct 200 ms 33460 KB Output is correct
6 Correct 167 ms 24220 KB Output is correct
7 Correct 138 ms 24216 KB Output is correct
8 Correct 174 ms 24216 KB Output is correct
9 Correct 264 ms 41608 KB Output is correct
10 Correct 251 ms 41612 KB Output is correct
11 Correct 379 ms 58920 KB Output is correct
12 Correct 289 ms 54228 KB Output is correct
13 Correct 174 ms 24216 KB Output is correct
14 Runtime error 193 ms 12164 KB Execution killed with signal 13
15 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 340 ms 24264 KB Output is correct
2 Runtime error 197 ms 12168 KB Execution killed with signal 13
3 Halted 0 ms 0 KB -