Submission #59118

#TimeUsernameProblemLanguageResultExecution timeMemory
59118wilwxkTravelling Merchant (APIO17_merchant)C++11
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> using namespace std; const int MAXN=105; const int MAXK=1005; const long long INF=1e15+9; long long v[MAXN][MAXK][2]; long long dist[MAXN][MAXN], prof[MAXN][MAXN]; long long g[MAXN][MAXN]; int n, m, k; void floyd() { for(int kk=1; kk<=n; kk++) { for(int i=1; i<=n; i++) { for(int j=1; j<=n; j++) { dist[i][j]=min(dist[i][j], dist[i][kk]+dist[kk][j]); } } } } bool testa(long long x) { for(int i=1; i<=n; i++) for(int j=1; j<=n; j++) g[i][j]=INF; for(int i=1; i<=n; i++) { for(int j=1; j<=n; j++) { if(dist[i][j]==INF||i==j) continue; g[i][j]=(x*dist[i][j])-prof[i][j]; } } for(int kk=1; kk<=n; kk++) { for(int i=1; i<=n; i++) { for(int j=1; j<=n; j++) { g[i][j]=min(g[i][j], g[i][kk]+g[kk][j]); } } } for(int i=1; i<=n; i++) if(g[i][i]<=0) return 1; return 0; } int main() { scanf("%d %d %d", &n, &m, &k); for(int i=1; i<=n; i++) for(int j=1; j<=k; j++) scanf("%lld %lld", &v[i][j][0], &v[i][j][1]); for(int i=1; i<=n; i++) for(int j=1; j<=n; j++) dist[i][j]=INF; while(m--) { int a, b, c; scanf("%d %d %d", &a, &b, &c); dist[a][b]=min(dist[a][b], c); } floyd(); for(int i=1; i<=n; i++) { for(int j=1; j<=n; j++) { for(int kk=1; kk<=k; kk++) { prof[i][j]=0; if(dist[i][j]==INF) continue; if(v[i][kk][0]==-1||v[j][kk][1]==-1||v[j][kk][1]<v[i][kk][0]) continue; prof[i][j]=max(prof[i][j], v[j][kk][1]-v[i][kk][0]); } } } long long resp=0; for(long long i=1e12; i>0; i/=2) while(testa(resp+i)) { resp+=i; //printf("foi %lld\n", resp); } printf("%lld\n", resp); }

Compilation message (stderr)

merchant.cpp: In function 'int main()':
merchant.cpp:49:90: error: no matching function for call to 'min(long long int&, int&)'
     while(m--) { int a, b, c; scanf("%d %d %d", &a, &b, &c); dist[a][b]=min(dist[a][b], c); }
                                                                                          ^
In file included from /usr/include/c++/7/bits/char_traits.h:39:0,
                 from /usr/include/c++/7/ios:40,
                 from /usr/include/c++/7/istream:38,
                 from /usr/include/c++/7/sstream:38,
                 from /usr/include/c++/7/complex:45,
                 from /usr/include/c++/7/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/7/bits/stdc++.h:52,
                 from merchant.cpp:1:
/usr/include/c++/7/bits/stl_algobase.h:195:5: note: candidate: template<class _Tp> const _Tp& std::min(const _Tp&, const _Tp&)
     min(const _Tp& __a, const _Tp& __b)
     ^~~
/usr/include/c++/7/bits/stl_algobase.h:195:5: note:   template argument deduction/substitution failed:
merchant.cpp:49:90: note:   deduced conflicting types for parameter 'const _Tp' ('long long int' and 'int')
     while(m--) { int a, b, c; scanf("%d %d %d", &a, &b, &c); dist[a][b]=min(dist[a][b], c); }
                                                                                          ^
In file included from /usr/include/c++/7/bits/char_traits.h:39:0,
                 from /usr/include/c++/7/ios:40,
                 from /usr/include/c++/7/istream:38,
                 from /usr/include/c++/7/sstream:38,
                 from /usr/include/c++/7/complex:45,
                 from /usr/include/c++/7/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/7/bits/stdc++.h:52,
                 from merchant.cpp:1:
/usr/include/c++/7/bits/stl_algobase.h:243:5: note: candidate: template<class _Tp, class _Compare> const _Tp& std::min(const _Tp&, const _Tp&, _Compare)
     min(const _Tp& __a, const _Tp& __b, _Compare __comp)
     ^~~
/usr/include/c++/7/bits/stl_algobase.h:243:5: note:   template argument deduction/substitution failed:
merchant.cpp:49:90: note:   deduced conflicting types for parameter 'const _Tp' ('long long int' and 'int')
     while(m--) { int a, b, c; scanf("%d %d %d", &a, &b, &c); dist[a][b]=min(dist[a][b], c); }
                                                                                          ^
In file included from /usr/include/c++/7/algorithm:62:0,
                 from /usr/include/x86_64-linux-gnu/c++/7/bits/stdc++.h:65,
                 from merchant.cpp:1:
/usr/include/c++/7/bits/stl_algo.h:3450:5: note: candidate: template<class _Tp> _Tp std::min(std::initializer_list<_Tp>)
     min(initializer_list<_Tp> __l)
     ^~~
/usr/include/c++/7/bits/stl_algo.h:3450:5: note:   template argument deduction/substitution failed:
merchant.cpp:49:90: note:   mismatched types 'std::initializer_list<_Tp>' and 'long long int'
     while(m--) { int a, b, c; scanf("%d %d %d", &a, &b, &c); dist[a][b]=min(dist[a][b], c); }
                                                                                          ^
In file included from /usr/include/c++/7/algorithm:62:0,
                 from /usr/include/x86_64-linux-gnu/c++/7/bits/stdc++.h:65,
                 from merchant.cpp:1:
/usr/include/c++/7/bits/stl_algo.h:3456:5: note: candidate: template<class _Tp, class _Compare> _Tp std::min(std::initializer_list<_Tp>, _Compare)
     min(initializer_list<_Tp> __l, _Compare __comp)
     ^~~
/usr/include/c++/7/bits/stl_algo.h:3456:5: note:   template argument deduction/substitution failed:
merchant.cpp:49:90: note:   mismatched types 'std::initializer_list<_Tp>' and 'long long int'
     while(m--) { int a, b, c; scanf("%d %d %d", &a, &b, &c); dist[a][b]=min(dist[a][b], c); }
                                                                                          ^
merchant.cpp:46:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d %d %d", &n, &m, &k);
     ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
merchant.cpp:47:58: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     for(int i=1; i<=n; i++) for(int j=1; j<=k; j++) scanf("%lld %lld", &v[i][j][0], &v[i][j][1]);
                                                     ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
merchant.cpp:49:36: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     while(m--) { int a, b, c; scanf("%d %d %d", &a, &b, &c); dist[a][b]=min(dist[a][b], c); }
                               ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~