Thanks for all the input guys,

Here is the code... Could anyone spot any problem with this?

#include <iostream>
#include <fstream>
#include <ctime>
#include <time.h>
#include <iomanip>

#define CPS 2

using namespace std;


int main(int argc, const char * argv[])
{

    ifstream infile("input2.in");//I renamed GCJ input file for simplicity...
    ofstream outfile("output.out");
    
    int nCases;
    infile >> nCases;
    cout<<"# Cases: "<<nCases<<endl;
    
    for (int ci = 0; ci < nCases; ci++) {
        double C, F, X;
        infile >> C;
        infile >> F;
        infile >> X;
        
        int n = (X/C) - (CPS/F);
        if (n < 0) {
            n = 0;
        }
        double tn = 0;//Time Taken to by nFarms
        for (int i=1; i <=n; i++) {
            tn += C/(CPS+((i-1)*F));
        }
        double tw = tn + X/(CPS+n*F);

        cout<<"Case #"<<std::fixed<< std::setprecision(7)<<ci+1<<": "<<tw<<endl;
        outfile<<"Case #"<<ci+1<<": "<<std::fixed<< 
std::setprecision(7)<<tw<<endl;
    }
    infile.close();
    outfile.close();
    return 0;
}

Regards

On Monday, April 14, 2014 9:22:14 AM UTC-4, Sivasathivel Kandasamy wrote:
> I attempted the second problem, which took all the time irrespective of my 
> confidence in my logic. I mean I tested my algorithm with the samples given 
> in the problem page and was able to get answers correct to the last decimal. 
> However, when I used their input and produced the output, Google Code Jam 
> didn't accept my outputs. I'm totally at loss where the problem was... And I 
> posted the problem in Stack Exchange, where many seems to agree with my 
> logic. 
> 
> 
> 
> Losing the qualification round is painful, but I would be worth it if I could 
> know where I went wrong...
> 
> 
> 
> Here is the logic I came with... (with some algebra...):
> 
> 
> 
> Let us assume, n as the minimum number of Farms to buy to win in the shortest 
> time. n is a non-negative integer value. 
> 
> a is the number of cookies one gets per second, a=2;
> 
> 
> 
> 
> 
> n is the minimum number of farms to buy to win, if and only if the following 
> equation is satisfied...
> 
> i.e time taken to buy n−1 farms + time to reach goal with (n−1) Farms > time 
> taken to buy n farms + time to reach goal with n Farms
> 
> 
> 
> However, time taken to buy n Farms =∑C/(a+(i−1)F); i = 1,...,n
> 
> 
> 
> Therefore LHS becomes:
> 
> (∑C/(a+(i−1)F))+(X/(a+(n−1)F))
> 
> 
> 
> RHS becomes
> 
> (∑C/(a+(i−1)F))+(X/(a+nF))+C/(a+(n−1)F)
> 
> 
> 
> by rearranging the equations, 
> 
> (X/(a+(n−1)F))>(X/(a+nF))+(C/(a+(n−1)F))(eq.1)
> 
> (X/(a+(n−1)F))−(X/(a+nF))>(C/(a+(n−1)F))
> 
> 
> 
> After some rearrangements, it becomes:
> 
> 
> 
> XF/(a+nF)>C
> 
> XF>C(a+nF)
> 
> XF/C>a+nF
> 
> (XF/C)−a>nF
> 
> (1/F)((XF/C)−a)>n
> 
> (X/C)−(a/F)>n
> 
> 
> 
> or
> 
> 
> 
> n <(X/C)−(a/F)
> 
> --- by ensuring that n is an non-negative integer, this equation would give 
> the minimum number of farms,n, to buy. Assuming it is not possible to buy 
> fraction of farms
> 
> 
> 
> With n Farms, the total time taken to reach the goal would be given by RHS of 
> (eq.1)
> 
> 
> 
> Could anyone tell me, where I went wrong?
> 
> As I sample, I tried with the samples and produced results correct to the 
> last decimal...!

-- 
You received this message because you are subscribed to the Google Groups 
"Google Code Jam" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-code/0d82dbfa-c485-411b-82b8-a0065924ebac%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to