# APPROX2: HOW TO GET 100 MARKS IN MY CODE ?

This is my code. This got AC but with 31 marks. Please help me by telling how can I get the remaining 69 marks too with this code. What additions should I do ?I have provided the code here or you can check my submitted solution here - http://www.codechef.com/viewsolution/7256317

``````#include<bits/stdc++.h>
#define fr(a,n) for(long long i=a;i<n;i++)
using namespace std;

int main(){
ios::sync_with_stdio(0);
int t;long long int c,n,k,j,min,count;
cin>>t;
while(t--){
count = 0;
cin>>n>>k;
vector<long long int> a(2*(n+5));
fr(0,n)
cin>>a[i];
min=abs(a[0]+a[1]-k);
fr(0,n-1){
for(j=i+1;j<n;j++){
c=abs(a[i]+a[j]-k);
if(min>=c){
min=c;
count++;
}
}
}
cout<<min<<" "<<count<<endl;
}
return 0;
}``````

You need to reset the count whenever a new minimum is encountered. Break your if condition into two (see the linked solution). And btw, why declare a vector of size 2*(n+5)? This is your code with AC: http://www.codechef.com/viewsolution/7258663

1 Like

You need to update the count to 0 as soon as you get a new minimum because you need to output the number of pairs that can produce the minimum.You can see your corrected code here

2 Likes

@shubham99

• if(min>=c){
min=c;
count++;
}
*this is simply wrongâ€¦first check min than calculate how many pair equal to this minâ€¦hope u get itâ€¦happy coding
1 Like

I was trying something with that sized vector and thank you