fork download
  1. #include <vector>
  2. #include <set>
  3. #include <algorithm>
  4. using namespace std;
  5. typedef long long ll;
  6. class PiecewiseLinearFunction{
  7. public:
  8. int maximumSolutions(vector <int> Y){
  9. int N = Y.size();
  10. vector<ll> v(N);
  11. set<ll> s;
  12. for( int i=0; i<N; i++ ){
  13. v[i] = ((ll)Y[i])*2;
  14. s.insert( v[i] );
  15. if( i>0 && v[i] == v[i-1] ) return -1;
  16. }
  17. vector<ll> w( s.begin(), s.end() );
  18. int ret=0;
  19. for( int i=0; i<w.size()-1; i++ ){
  20. for( ll p = w[i]-1; p <= w[i]+1; p++ ){
  21. int d = 0;
  22. if( v[0] == p ) d++;
  23. for( int j=1; j<N; j++ ){
  24. if( (v[j-1] < p && p <= v[j]) || (v[j-1] > p && p >= v[j]) )
  25. d++;
  26. }
  27. ret = max( ret, d );
  28. }
  29. }
  30. return ret;
  31. }
  32. };
Not running #stdin #stdout 0s 0KB
stdin
Standard input is empty
stdout
Standard output is empty