Submission #606211

#TimeUsernameProblemLanguageResultExecution timeMemory
606211rrrr10000Vision Program (IOI19_vision)C++14
100 / 100
11 ms1844 KiB
#include "vision.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; typedef vector<ll> vi; typedef vector<vi> vvi; typedef pair<ll,ll> P; typedef vector<P> vp; #define rep(i,n) for(ll i=0;i<(ll)(n);i++) #define REP(i,k,n) for(ll i=(ll)(k);i<(ll)(n);i++) #define pb emplace_back void construct_network(int H, int W, int K) { vector<vector<int>> al(2,vector<int>(2)); rep(tt,2){ vvi a(H+W-1); rep(i,H)rep(j,W){ if(tt==0)a[i+j].pb(i*W+j); else a[i-j+W-1].pb(i*W+j); } vi b; rep(i,H+W-1){ vector<int> ask; for(ll x:a[i])ask.pb(x); b.pb(add_or(ask)); } vi rui(H+W-1); rui[0]=b[0]; REP(i,1,H+W-1){ vector<int> ask={rui[i-1],b[i]}; rui[i]=add_or(ask); } vector<int> c,d; REP(i,K,H+W-1){ vector<int> ask={rui[i-K],b[i]}; c.pb(add_and(ask)); } REP(i,K+1,H+W-1){ vector<int> ask={rui[i-K-1],b[i]}; d.pb(add_and(ask)); } al[0][tt]=add_or(c); if(K<H+W-2)al[1][tt]=add_or(d); } if(K<H+W-2){ int t=add_or(al[1]); t=add_not(t); int u=add_or(al[0]); vector<int> ask={t,u}; add_and(ask); } else add_or(al[0]); }

Compilation message (stderr)

vision.cpp: In function 'void construct_network(int, int, int)':
vision.cpp:31:34: warning: narrowing conversion of 'rui.std::vector<long long int>::operator[](((std::vector<long long int>::size_type)(i - 1)))' from '__gnu_cxx::__alloc_traits<std::allocator<long long int>, long long int>::value_type' {aka 'long long int'} to 'int' [-Wnarrowing]
   31 |    vector<int> ask={rui[i-1],b[i]};
      |                                  ^
vision.cpp:31:34: warning: narrowing conversion of 'rui.std::vector<long long int>::operator[](((std::vector<long long int>::size_type)(i - 1)))' from '__gnu_cxx::__alloc_traits<std::allocator<long long int>, long long int>::value_type' {aka 'long long int'} to 'int' [-Wnarrowing]
vision.cpp:31:34: warning: narrowing conversion of 'b.std::vector<long long int>::operator[](((std::vector<long long int>::size_type)i))' from '__gnu_cxx::__alloc_traits<std::allocator<long long int>, long long int>::value_type' {aka 'long long int'} to 'int' [-Wnarrowing]
vision.cpp:31:34: warning: narrowing conversion of 'b.std::vector<long long int>::operator[](((std::vector<long long int>::size_type)i))' from '__gnu_cxx::__alloc_traits<std::allocator<long long int>, long long int>::value_type' {aka 'long long int'} to 'int' [-Wnarrowing]
vision.cpp:36:34: warning: narrowing conversion of 'rui.std::vector<long long int>::operator[](((std::vector<long long int>::size_type)(i - ((ll)K))))' from '__gnu_cxx::__alloc_traits<std::allocator<long long int>, long long int>::value_type' {aka 'long long int'} to 'int' [-Wnarrowing]
   36 |    vector<int> ask={rui[i-K],b[i]};
      |                                  ^
vision.cpp:36:34: warning: narrowing conversion of 'rui.std::vector<long long int>::operator[](((std::vector<long long int>::size_type)(i - ((ll)K))))' from '__gnu_cxx::__alloc_traits<std::allocator<long long int>, long long int>::value_type' {aka 'long long int'} to 'int' [-Wnarrowing]
vision.cpp:36:34: warning: narrowing conversion of 'b.std::vector<long long int>::operator[](((std::vector<long long int>::size_type)i))' from '__gnu_cxx::__alloc_traits<std::allocator<long long int>, long long int>::value_type' {aka 'long long int'} to 'int' [-Wnarrowing]
vision.cpp:36:34: warning: narrowing conversion of 'b.std::vector<long long int>::operator[](((std::vector<long long int>::size_type)i))' from '__gnu_cxx::__alloc_traits<std::allocator<long long int>, long long int>::value_type' {aka 'long long int'} to 'int' [-Wnarrowing]
vision.cpp:40:36: warning: narrowing conversion of 'rui.std::vector<long long int>::operator[](((std::vector<long long int>::size_type)((i - ((ll)K)) - 1)))' from '__gnu_cxx::__alloc_traits<std::allocator<long long int>, long long int>::value_type' {aka 'long long int'} to 'int' [-Wnarrowing]
   40 |    vector<int> ask={rui[i-K-1],b[i]};
      |                                    ^
vision.cpp:40:36: warning: narrowing conversion of 'rui.std::vector<long long int>::operator[](((std::vector<long long int>::size_type)((i - ((ll)K)) - 1)))' from '__gnu_cxx::__alloc_traits<std::allocator<long long int>, long long int>::value_type' {aka 'long long int'} to 'int' [-Wnarrowing]
vision.cpp:40:36: warning: narrowing conversion of 'b.std::vector<long long int>::operator[](((std::vector<long long int>::size_type)i))' from '__gnu_cxx::__alloc_traits<std::allocator<long long int>, long long int>::value_type' {aka 'long long int'} to 'int' [-Wnarrowing]
vision.cpp:40:36: warning: narrowing conversion of 'b.std::vector<long long int>::operator[](((std::vector<long long int>::size_type)i))' from '__gnu_cxx::__alloc_traits<std::allocator<long long int>, long long int>::value_type' {aka 'long long int'} to 'int' [-Wnarrowing]
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...