Cod sursa(job #67746)

Utilizator ada_sAda-Mihaela Solcan ada_s Data 25 iunie 2007 13:52:44
Problema Sarpe Scor 0
Compilator cpp Status done
Runda preONI 2007, Runda Finala, Clasa a 9-a si gimnaziu Marime 1.09 kb
#include <fstream>
std::ifstream f1("sarpe.in");
std::ofstream f2("sarpe.out");
int main()
{
	char temp;
	int i=0, rest=0, nr[1100], j, rest2;
  f1>>temp;
	while (!f1.eof())
	{
		i++;
		switch (temp)
		{
			case '0' : nr[i]=0;break;
			case '1' : nr[i]=1;break;
			case '2' : nr[i]=2;break;
			case '3' : nr[i]=3;break;
			case '4' : nr[i]=4;break;
			case '5' : nr[i]=5;break;
			case '6' : nr[i]=6;break;
			case '7' : nr[i]=7;break;
			case '8' : nr[i]=8;break;
			case '9' : nr[i]=9;break;								 
		}//switch	
		f1>>temp;
	}//while
	for (j=i; j>0; j--)
	{
    rest2=(nr[j]*4+rest)/10;
		nr[j]=(nr[j]*4+rest)%10;
		rest=rest2;
	}//for i
	nr[0]=rest;
	rest=(nr[i]+6)/10;
	nr[i]=(nr[i]+6)%10;
	rest2=(nr[i-1]+1+rest)/10;
  nr[i-1]=(nr[i-1]+1+rest)%10;
	rest=rest2;
	j=i-2;
	while ((rest>0)&&(j>=0))
	{
  	rest2=(nr[j]+rest)/10;
    nr[j]=(nr[j]+rest)%10;
  	rest=rest2;	
		j--;
	}//while
	if (rest!=0)
	{
		f2<<rest;
	  for (j=0; j<=i; j++)
			f2<<nr[j];
	}//if
	else
	{
		if (nr[0]!=0)
			f2<<nr[0];
	 	for (j=1; j<=i; j++)
	  	  f2<<nr[j];
	}// else 
	f2<<"\n";
	f1.close();
	f2.close();
	return 0;
}//main