Page 2 of 2

Posted: Tue Jul 22, 2003 6:06 pm
by dispanser
Accepted

:lol:

Re: 10334 - Ray Through Glasses

Posted: Sat May 31, 2008 6:22 pm
by ankur_vjy
i cross checked some of the input cases and they seem to work.
I m implementing a Big Integer and producing fibonacci numbers
But i keep getting WA . please help

Code: Select all

#define pb push_back
#define vi vector<int>

void init (vi &num, string s) {
 if(s.size()%3==1)
    s = "00" + s;
  else if (s.size()%3 == 2)
    s = "0" + s;		
  for(int i=0;i<s.size();i+=3) {
    num.pb((s[i]-'0')*100 + (s[i+1]-'0')*10 + (s[i+2]-'0'));	
  }
  reverse(num.begin(),num.end());
  
}

void add(vi num1,vi num2, vi &sum) {
  int carry=0;
  for(int i=0;i<num1.size() || i<num2.size();i++) {
    if(i<num1.size()&&i<num2.size())
      sum.pb(num1[i]+num2[i]+carry);
    else if(i<num1.size())
      sum.pb(num1[i]+carry);
    else
      sum.pb(num2[i]+carry);
    carry=0;
    if(sum.back()>=1000) {
      sum.back()-=1000;
      carry=1;
    }
  }
  if(carry)
    sum.pb(1);
 
}

void display(vi num) {
  for(int i=num.size()-1;i>=0;i--)
    cout<<num[i];
}

int main() {
  int n;
  while(scanf("%d",&n)!=EOF) {
    vi f1,f2;
    init(f1,"1");
    init(f2,"1");
    for(int i=0;i<n;i++){
      vi temp;
      add(f1,f2,temp);
      f1=f2;
      f2=temp;
    }
    display(f2);
    cout<<"\n";
  }
  return 0;
}

Re: 10334 - Ray Through Glasses

Posted: Mon Jan 05, 2009 7:55 am
by ExUCI
The output for the input 1000 has 210 digits and yours only has 199, it's just missing some zeroes :D

Re: 10334 - Ray Through Glasses

Posted: Fri Nov 07, 2014 11:59 am
by xrenon
Thank You
Deleted

Re: 10334 - Ray Through Glasses

Posted: Fri Nov 07, 2014 1:42 pm
by lighted
Why runtime error ???
Why don't you put your code into code blocks?

Change reading to

Code: Select all

StringBuilder sb = new StringBuilder();
		
while ( (s = br.readLine() ) != null ) {

	StringBuilder append = sb.append(bi[Integer.parseInt(s)]).append("\n");
}