1 / 2
Jan 2019

why am I getting wrong answer on AGGRCOW - Aggressive cows18 problem?
Here’s my code, am I missing any specific test cases?

#include<iostream>
#include<algorithm>
#include<vector>

using namespace std;

int P(vector<long long> v, long long x, long long c){
	int cows_placed = 1, last_pos = v[0];
	for(long long i=1; i<(long long)v.size();++i){
		if(v[i]-last_pos>=x){
			if(++cows_placed==c)
				return 1;
			last_pos=v[i];
		}
	}
	return 0;
}
int search(vector<long long> v,long long c){
	long long lo=0,hi=v[v.size()-1]-v[0];
	while(lo<=hi){
		long long mid=lo+((hi-lo)>>1);
		if(P(v,mid,c)){
			lo=mid+1;
		}
		else{
			hi=mid-1;
		}
	}
	return lo-1;
}
int main(){
	vector<long long> stalls;
	long long t,n,c,pos;
	cin>>t;
	while(t--){
		cin>>n>>c;
		//cout<<n;
		while(n--){
			cin>>pos;
			stalls.push_back(pos);
		}
		sort(stalls.begin(),stalls.end());
		cout<<search(stalls,c)<<endl;
	}
}
`
  • created

    Jan '19
  • last reply

    Jan '19
  • 1

    reply

  • 949

    views

  • 2

    users

  • 1

    link

Try this:

2
4 3
100000000
500000000
900000000
2
8 4
1
2
8
4
3
12
10
14

Expected answer

400000000
3

Your answer:

400000000
99999999