Submission #943618

# Submission time Handle Problem Language Result Execution time Memory
943618 2024-03-11T16:47:16 Z yeediot Two Transportations (JOI19_transportations) C++17
Compilation error
0 ms 0 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;
    vector<pair<int,int>>adj[mxn];
    vector<int>dis(mxn);
    int prev=0;
    vector<bool>vis(mxn);
    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(){
        d[mn.S]=prev+mn.F;
        prev=d[mn.S];
        vis[mn.S]=1;
        for(auto [u,d]:mn.S){
            d[u]=min(d[u],d[mn.S]+d);
        }
        for(int i=0;i<n;i++){
            if(vis[i])continue;
            mn=min(mn,{d[i]-prev,i});
        }
    }
    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]});
    }
    dis[0]=0;
    vis[0]=1;
    for(int i=1;i<=N;i++){
        dis[i]=1e18;
        vis[i]=0;
    }
    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;
    vector<pair<int,int>>adj[mxn];
    vector<int>dis(mxn);
    int prev=0;
    vector<bool>vis(mxn);
    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(){
        d[mn.S]=prev+mn.F;
        prev=d[mn.S];
        vis[mn.S]=1;
        for(auto [u,d]:mn.S){
            d[u]=min(d[u],d[mn.S]+d);
        }
        for(int i=0;i<n;i++){
            if(vis[i])continue;
            mn=min(mn,{d[i]-prev,i});
        }
    }
    void gdis(){
        if(mn.F>cur){
            mn.F=cur;
            send((1<<9)-1,9);
        }
        else{
            send(mn.F,9);
            send(mn.S,11);
            gmn();
            first=0;
        }
        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[0]=0;
    vis[0]=1;
    for(int i=1;i<=N;i++){
        dis[i]=1e18;
        vis[i]=0;
    }
    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

Azer.cpp: In function 'void {anonymous}::gmn()':
Azer.cpp:22:9: error: 'd' was not declared in this scope
   22 |         d[mn.S]=prev+mn.F;
      |         ^
Azer.cpp:4:11: error: 'begin' was not declared in this scope
    4 | #define S second
      |           ^~~~~~
Azer.cpp:25:27: note: in expansion of macro 'S'
   25 |         for(auto [u,d]:mn.S){
      |                           ^
Azer.cpp:4:11: note: suggested alternatives:
    4 | #define S second
      |           ^~~~~~
Azer.cpp:25:27: note: in expansion of macro 'S'
   25 |         for(auto [u,d]:mn.S){
      |                           ^
In file included from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:95,
                 from Azer.cpp:2:
/usr/include/c++/10/valarray:1224:5: note:   'std::begin'
 1224 |     begin(const valarray<_Tp>& __va)
      |     ^~~~~
In file included from /usr/include/c++/10/filesystem:46,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:129,
                 from Azer.cpp:2:
/usr/include/c++/10/bits/fs_dir.h:549:3: note:   'std::filesystem::__cxx11::begin'
  549 |   begin(recursive_directory_iterator __iter) noexcept
      |   ^~~~~
Azer.cpp:4:11: error: 'end' was not declared in this scope
    4 | #define S second
      |           ^~~~~~
Azer.cpp:25:27: note: in expansion of macro 'S'
   25 |         for(auto [u,d]:mn.S){
      |                           ^
Azer.cpp:4:11: note: suggested alternatives:
    4 | #define S second
      |           ^~~~~~
Azer.cpp:25:27: note: in expansion of macro 'S'
   25 |         for(auto [u,d]:mn.S){
      |                           ^
In file included from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:95,
                 from Azer.cpp:2:
/usr/include/c++/10/valarray:1244:5: note:   'std::end'
 1244 |     end(const valarray<_Tp>& __va)
      |     ^~~
In file included from /usr/include/c++/10/filesystem:46,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:129,
                 from Azer.cpp:2:
/usr/include/c++/10/bits/fs_dir.h:554:3: note:   'std::filesystem::__cxx11::end'
  554 |   end(recursive_directory_iterator) noexcept
      |   ^~~
Azer.cpp:30:36: error: no matching function for call to 'min(std::pair<int, int>&, <brace-enclosed initializer list>)'
   30 |             mn=min(mn,{d[i]-prev,i});
      |                                    ^
In file included from /usr/include/c++/10/vector:60,
                 from Azer.h:6,
                 from Azer.cpp:1:
/usr/include/c++/10/bits/stl_algobase.h:230:5: note: candidate: 'constexpr const _Tp& std::min(const _Tp&, const _Tp&) [with _Tp = std::pair<int, int>]'
  230 |     min(const _Tp& __a, const _Tp& __b)
      |     ^~~
/usr/include/c++/10/bits/stl_algobase.h:230:36: note:   no known conversion for argument 2 from '<brace-enclosed initializer list>' to 'const std::pair<int, int>&'
  230 |     min(const _Tp& __a, const _Tp& __b)
      |                         ~~~~~~~~~~~^~~
/usr/include/c++/10/bits/stl_algobase.h:278:5: note: candidate: 'template<class _Tp, class _Compare> constexpr const _Tp& std::min(const _Tp&, const _Tp&, _Compare)'
  278 |     min(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
/usr/include/c++/10/bits/stl_algobase.h:278:5: note:   template argument deduction/substitution failed:
Azer.cpp:30:36: note:   candidate expects 3 arguments, 2 provided
   30 |             mn=min(mn,{d[i]-prev,i});
      |                                    ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from Azer.cpp:2:
/usr/include/c++/10/bits/stl_algo.h:3468:5: note: candidate: 'template<class _Tp> constexpr _Tp std::min(std::initializer_list<_Tp>)'
 3468 |     min(initializer_list<_Tp> __l)
      |     ^~~
/usr/include/c++/10/bits/stl_algo.h:3468:5: note:   template argument deduction/substitution failed:
Azer.cpp:30:36: note:   'std::pair<int, int>' is not derived from 'std::initializer_list<_Tp>'
   30 |             mn=min(mn,{d[i]-prev,i});
      |                                    ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from Azer.cpp:2:
/usr/include/c++/10/bits/stl_algo.h:3474:5: note: candidate: 'template<class _Tp, class _Compare> constexpr _Tp std::min(std::initializer_list<_Tp>, _Compare)'
 3474 |     min(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
/usr/include/c++/10/bits/stl_algo.h:3474:5: note:   template argument deduction/substitution failed:
Azer.cpp:30:36: note:   'std::pair<int, int>' is not derived from 'std::initializer_list<_Tp>'
   30 |             mn=min(mn,{d[i]-prev,i});
      |                                    ^
Azer.cpp: In function 'void InitA(int, int, std::vector<int>, std::vector<int>, std::vector<int>)':
Azer.cpp:59:16: warning: overflow in conversion from 'double' to '__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type' {aka 'int'} changes value from '1.0e+18' to '2147483647' [-Woverflow]
   59 |         dis[i]=1e18;
      |                ^~~~

Baijan.cpp: In function 'void {anonymous}::gmn()':
Baijan.cpp:22:9: error: 'd' was not declared in this scope
   22 |         d[mn.S]=prev+mn.F;
      |         ^
Baijan.cpp:4:11: error: 'begin' was not declared in this scope
    4 | #define S second
      |           ^~~~~~
Baijan.cpp:25:27: note: in expansion of macro 'S'
   25 |         for(auto [u,d]:mn.S){
      |                           ^
Baijan.cpp:4:11: note: suggested alternatives:
    4 | #define S second
      |           ^~~~~~
Baijan.cpp:25:27: note: in expansion of macro 'S'
   25 |         for(auto [u,d]:mn.S){
      |                           ^
In file included from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:95,
                 from Baijan.cpp:2:
/usr/include/c++/10/valarray:1224:5: note:   'std::begin'
 1224 |     begin(const valarray<_Tp>& __va)
      |     ^~~~~
In file included from /usr/include/c++/10/filesystem:46,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:129,
                 from Baijan.cpp:2:
/usr/include/c++/10/bits/fs_dir.h:549:3: note:   'std::filesystem::__cxx11::begin'
  549 |   begin(recursive_directory_iterator __iter) noexcept
      |   ^~~~~
Baijan.cpp:4:11: error: 'end' was not declared in this scope
    4 | #define S second
      |           ^~~~~~
Baijan.cpp:25:27: note: in expansion of macro 'S'
   25 |         for(auto [u,d]:mn.S){
      |                           ^
Baijan.cpp:4:11: note: suggested alternatives:
    4 | #define S second
      |           ^~~~~~
Baijan.cpp:25:27: note: in expansion of macro 'S'
   25 |         for(auto [u,d]:mn.S){
      |                           ^
In file included from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:95,
                 from Baijan.cpp:2:
/usr/include/c++/10/valarray:1244:5: note:   'std::end'
 1244 |     end(const valarray<_Tp>& __va)
      |     ^~~
In file included from /usr/include/c++/10/filesystem:46,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:129,
                 from Baijan.cpp:2:
/usr/include/c++/10/bits/fs_dir.h:554:3: note:   'std::filesystem::__cxx11::end'
  554 |   end(recursive_directory_iterator) noexcept
      |   ^~~
Baijan.cpp:30:36: error: no matching function for call to 'min(std::pair<int, int>&, <brace-enclosed initializer list>)'
   30 |             mn=min(mn,{d[i]-prev,i});
      |                                    ^
In file included from /usr/include/c++/10/vector:60,
                 from Baijan.h:7,
                 from Baijan.cpp:1:
/usr/include/c++/10/bits/stl_algobase.h:230:5: note: candidate: 'constexpr const _Tp& std::min(const _Tp&, const _Tp&) [with _Tp = std::pair<int, int>]'
  230 |     min(const _Tp& __a, const _Tp& __b)
      |     ^~~
/usr/include/c++/10/bits/stl_algobase.h:230:36: note:   no known conversion for argument 2 from '<brace-enclosed initializer list>' to 'const std::pair<int, int>&'
  230 |     min(const _Tp& __a, const _Tp& __b)
      |                         ~~~~~~~~~~~^~~
/usr/include/c++/10/bits/stl_algobase.h:278:5: note: candidate: 'template<class _Tp, class _Compare> constexpr const _Tp& std::min(const _Tp&, const _Tp&, _Compare)'
  278 |     min(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
/usr/include/c++/10/bits/stl_algobase.h:278:5: note:   template argument deduction/substitution failed:
Baijan.cpp:30:36: note:   candidate expects 3 arguments, 2 provided
   30 |             mn=min(mn,{d[i]-prev,i});
      |                                    ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from Baijan.cpp:2:
/usr/include/c++/10/bits/stl_algo.h:3468:5: note: candidate: 'template<class _Tp> constexpr _Tp std::min(std::initializer_list<_Tp>)'
 3468 |     min(initializer_list<_Tp> __l)
      |     ^~~
/usr/include/c++/10/bits/stl_algo.h:3468:5: note:   template argument deduction/substitution failed:
Baijan.cpp:30:36: note:   'std::pair<int, int>' is not derived from 'std::initializer_list<_Tp>'
   30 |             mn=min(mn,{d[i]-prev,i});
      |                                    ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from Baijan.cpp:2:
/usr/include/c++/10/bits/stl_algo.h:3474:5: note: candidate: 'template<class _Tp, class _Compare> constexpr _Tp std::min(std::initializer_list<_Tp>, _Compare)'
 3474 |     min(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
/usr/include/c++/10/bits/stl_algo.h:3474:5: note:   template argument deduction/substitution failed:
Baijan.cpp:30:36: note:   'std::pair<int, int>' is not derived from 'std::initializer_list<_Tp>'
   30 |             mn=min(mn,{d[i]-prev,i});
      |                                    ^
Baijan.cpp: In function 'void InitB(int, int, std::vector<int>, std::vector<int>, std::vector<int>)':
Baijan.cpp:62:16: warning: overflow in conversion from 'double' to '__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type' {aka 'int'} changes value from '1.0e+18' to '2147483647' [-Woverflow]
   62 |         dis[i]=1e18;
      |                ^~~~