Page 3 of 3

Re: 11150 - Cola

Posted: Wed Dec 22, 2010 6:22 pm
by ByOnti
Hi, I got AC with this function:

Code: Select all

int f (int n, int borrowed ) {
	if (n==1) return 0;
	if (n==2) return 0;
	n = n/3 + f(n/3 + n%3, borrowed);
	return n;
}
this function generate the additional bottles.

Re: 11150 - Cola

Posted: Sun Mar 31, 2013 3:47 am
by lupin
can tou help me... this is my submission.. i got TLE.

Code: Select all

#include<stdio.h>
#include<algorithm>
#include<iostream>
#include<cmath>
#include<vector>
#include<queue>
#include<deque>
#include<string.h>
//jangan lupa save as!!!
#define tahan system("PAUSE")

    int cola(int n){
    int bonus,sisa=n%3,total,pinjam;
    if(total==1) return 0;
    if(total==2) return 0;
        if(sisa==2) pinjam=1;
        else pinjam=0;
        total=n+pinjam;
        bonus=total/3;
        sisa=total%3;
        total=bonus+cola(bonus+sisa);
    return total;
    }

int main(){ 
int n;
    while(scanf("%d", &n)){
    if(n==0)break;
    else printf("%d\n", cola(n));
      
    }
return 0;

}
please????

Re: 11150 - Cola

Posted: Mon Apr 01, 2013 10:05 pm
by brianfry713
total is uninitialized and is used to terminate your loop.

Re: 11150 - Cola

Posted: Tue Jul 23, 2013 9:26 pm
by raihan_sust5
i am having problem with input /output....nd i can't understand what they actually want me to do...anyone help me please

Re: 11150 - Cola

Posted: Wed Jan 29, 2014 9:12 am
by Omidoo
arsalan_mousavian wrote:can somebody tell me what is the correct output for my input ?

Code: Select all

1
2
3
4
5
6
7
8
9
10
15
20
30
40
50
100
150
190
199
200

Code: Select all

2
3
5
6
8
9
11
12
14
15
23
30
45
60
75
150
225
285
299
300
thanks
hey guys !

you sure output 11 is correct with input 7 ?

Re: 11150 - Cola

Posted: Wed Jan 29, 2014 10:41 pm
by brianfry713
7 full 0 empty - drink 7, trade in 6
2 full 1 empty - drink 2, trade in 3
1 full 0 empty - drink 1
output should be 10.

http://www.uvatoolkit.com/problemssolve.php

Re: 11150 - Cola

Posted: Thu Sep 25, 2014 8:13 am
by mpmohi
Hi guys check this..

Code: Select all

Accepted :)

this code passes all the test case but gets wa..

for testCase http://www.udebug.com/UVa/11150

Re: 11150 - Cola

Posted: Fri Sep 26, 2014 12:20 am
by brianfry713
Try solving it without using floating point.

Re: 11150 - Cola

Posted: Fri Sep 26, 2014 2:42 pm
by lighted
If you solve with floating point you will have many problems like precision errors. So try to avoid it when possible. For this problem there is no need to use it.
Add epsilon to result

Code: Select all

pf("%.lf\n", 4 + (n - 3) / 2) * 3 + 1e-8;
I solved this problem with integers but with a loop. You did it in O(1). :wink: :)
Don't forget to remove your code after getting accepted.

Re: 11150 - Cola

Posted: Sat Nov 22, 2014 10:49 pm
by mpmohi
Thanks brainfry713 and lighted for your helpful advise :)

Re: 11150 Cola

Posted: Sat Dec 06, 2014 10:33 pm
by This Is ERFAN
Getting time limit....help me plz

Code: Select all

#include<stdio.h>

int main()
{
    int a;
    while(1)
    {
        scanf("%d",&a);
        int count=a,p,q=a,add;
        while(q>=3)
        {
            add=q/3;
            p=q%3;
            q=add+p;
            count=count+add;
        }
        if(q==2) count++;
        printf("%d\n",count);
    }
    return 0;
}

Re: Suggest some easy problems to solve

Posted: Sun Dec 07, 2014 8:56 am
by lighted
When your code will terminate? You should read until EOF. Change you reading to

Code: Select all

while(scanf("%d",&a) == 1)
{
    int count = a, p, q = a, add;
Hey ERFAN! There is already existing thread for this problem here
http://acm.uva.es/board/viewtopic.php?f ... 9c#p373964

Re: 11150 - Cola

Posted: Mon Jan 26, 2015 5:34 am
by 20717TZ
If you guys think this problem from a different perspective, it's super easy:

Code: Select all

/* 11150 - Cola
      Author: Peter Lee
     Contact: leestime.com <at> gmail.com
   Algorithm: ad-hoc
       Notes: 1. Let:
                   x = The price of an empty bottle
                   y = The price of the drink only in a bottle
                 Then:
                   x + y = 3*x => y = 2*x
              2. Therefore, every two empty bottles can be used to trade
                 the drink only in a bottle.
 */

// Code removed

    int T = N / 2 * 3;
    if (N % 2)
        ++T;

// Code removed}

Re: 11150 - Cola

Posted: Thu Jun 23, 2016 7:37 pm
by yasir.nabil
My code passes all the test cases but got WA......why?

Code: Select all

#include <stdio.h>


int func(int allBottle,int remain)
{
    int bottle,add,rem;
    bottle = (allBottle+remain) / 3;
    rem = (allBottle+remain) % 3;
    add = bottle + rem - remain;
    if((add+2)%3==0&&add!=0&&add>2)
        return bottle + func(add,2);
    else if((add + 1)%3==0&&add!=0)
        return bottle + func(add,1);
    else if(add%3==0&&add!=0)
        return bottle + func(add,0);
    else
        return bottle;
}

int main(void)
{
    int n,x;
    scanf("%d",&n);
    x = n + func(n,0);
    printf("%d\n",x);
    return 0;
}
Is there any cases that my code cannot passes??