Submission #207720

#TimeUsernameProblemLanguageResultExecution timeMemory
207720DodgeBallManWatching (JOI13_watching)C++14
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> using namespace std; const int N = 2e3 + 10; int n, p, q, now, prev, dp[N][N], vec[N]; bool chk( int m ) { for( int i = 0 ; i <= p ; i++ ) for( int j = 0 ; j <= q ; j++ ) { if( !i && !j ) continue ; dp[i][j] = 0; if( i ) dp[i][j] = upper_bound( vec + 1, vec + 1 + n, vec[dp[i-1][j]+1] + m - 1 ) - vec - 1; if( j ) dp[i][j] = max( dp[i][j], upper_bound( vec + 1, vec + 1 + n, vec[dp[i][j-1]+1] + m + m - 1 ) - vec - 1 ); if( dp[i][j] == n ) return true; } return false; } int main() { scanf("%d %d %d",&n,&p,&q); if( p + q >= n ) return !printf("1"); for( int i = 1 ; i <= n ; i++ ) { scanf("%d",&vec[i]); } sort( vec + 1, vec + 1 + n ); int l = 1, r = 1e9; while( l < r ) { int m = l + r >> 1; if( chk( m ) ) r = m; else l = m + 1; } printf("%d",l); return 0; }

Compilation message (stderr)

watching.cpp: In function 'bool chk(int)':
watching.cpp:13:120: error: no matching function for call to 'max(int&, long int)'
         if( j ) dp[i][j] = max( dp[i][j], upper_bound( vec + 1, vec + 1 + n, vec[dp[i][j-1]+1] + m + m - 1 ) - vec - 1 );
                                                                                                                        ^
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 watching.cpp:1:
/usr/include/c++/7/bits/stl_algobase.h:219:5: note: candidate: template<class _Tp> constexpr const _Tp& std::max(const _Tp&, const _Tp&)
     max(const _Tp& __a, const _Tp& __b)
     ^~~
/usr/include/c++/7/bits/stl_algobase.h:219:5: note:   template argument deduction/substitution failed:
watching.cpp:13:120: note:   deduced conflicting types for parameter 'const _Tp' ('int' and 'long int')
         if( j ) dp[i][j] = max( dp[i][j], upper_bound( vec + 1, vec + 1 + n, vec[dp[i][j-1]+1] + m + m - 1 ) - vec - 1 );
                                                                                                                        ^
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 watching.cpp:1:
/usr/include/c++/7/bits/stl_algobase.h:265:5: note: candidate: template<class _Tp, class _Compare> constexpr const _Tp& std::max(const _Tp&, const _Tp&, _Compare)
     max(const _Tp& __a, const _Tp& __b, _Compare __comp)
     ^~~
/usr/include/c++/7/bits/stl_algobase.h:265:5: note:   template argument deduction/substitution failed:
watching.cpp:13:120: note:   deduced conflicting types for parameter 'const _Tp' ('int' and 'long int')
         if( j ) dp[i][j] = max( dp[i][j], upper_bound( vec + 1, vec + 1 + n, vec[dp[i][j-1]+1] + m + m - 1 ) - vec - 1 );
                                                                                                                        ^
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 watching.cpp:1:
/usr/include/c++/7/bits/stl_algo.h:3462:5: note: candidate: template<class _Tp> constexpr _Tp std::max(std::initializer_list<_Tp>)
     max(initializer_list<_Tp> __l)
     ^~~
/usr/include/c++/7/bits/stl_algo.h:3462:5: note:   template argument deduction/substitution failed:
watching.cpp:13:120: note:   mismatched types 'std::initializer_list<_Tp>' and 'int'
         if( j ) dp[i][j] = max( dp[i][j], upper_bound( vec + 1, vec + 1 + n, vec[dp[i][j-1]+1] + m + m - 1 ) - vec - 1 );
                                                                                                                        ^
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 watching.cpp:1:
/usr/include/c++/7/bits/stl_algo.h:3468:5: note: candidate: template<class _Tp, class _Compare> constexpr _Tp std::max(std::initializer_list<_Tp>, _Compare)
     max(initializer_list<_Tp> __l, _Compare __comp)
     ^~~
/usr/include/c++/7/bits/stl_algo.h:3468:5: note:   template argument deduction/substitution failed:
watching.cpp:13:120: note:   mismatched types 'std::initializer_list<_Tp>' and 'int'
         if( j ) dp[i][j] = max( dp[i][j], upper_bound( vec + 1, vec + 1 + n, vec[dp[i][j-1]+1] + m + m - 1 ) - vec - 1 );
                                                                                                                        ^
watching.cpp: In function 'int main()':
watching.cpp:29:19: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
         int m = l + r >> 1;
                 ~~^~~
watching.cpp:21:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d %d %d",&n,&p,&q);
     ~~~~~^~~~~~~~~~~~~~~~~~~~~
watching.cpp:24:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d",&vec[i]);
         ~~~~~^~~~~~~~~~~~~~