Cod sursa(job #626406)

Utilizator DanytzuBran Daniel Danytzu Data 27 octombrie 2011 00:09:26
Problema Cifra Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.33 kb
#include <iostream>
#include<cstdio>

using namespace std;
long long int sumavectori[99999999];//fiiatent si schimba
long long int suma=0,produsul=1;

int calculeazasuma(int t)
{
if (t>=1&&t<=30000)
{suma =0;
produsul=1;
for (long long int l=1;l<=t;l++)
{
for (long long int k=1;k<=l;k++)
{
produsul =produsul*l;
}
suma =suma+produsul;
produsul=1;
}
}else
{return 0;
}
return suma;
 
}

int main()
{ FILE *f,*g;
	f=fopen("cifra.in","r");
	g=fopen("cifra.out","w");

	int n,T,v[30000];
	
	//cout<<"nr pana la cat se calculeaza suma :";cin>>n;
	fscanf(f,"%d",&n);
	//pune suma in vector pe pozitii de i;
	
	for (long long int i=1;i<=n;i++)
	{
		sumavectori[i]=calculeazasuma(i);
		
	}
	//citesc intrebarile si le pun in vector
	//cout<<"afisez vectorul cu sume pana la n:";
	//for(int i=1;i<=n;i++)
//	{
	//	cout<<sumavectori[i]<<" , ";
//	}
	//cout<<"\n";
//cout<<"nr de intrebari:";	cin>>T;
	fscanf(f,"%d",&T);
	
for (int i=1;i<=T;i++)
	{
		fscanf(f,"%d",&v[i]);
	}
//cout<<"intrebarile :";
//for (int i=1;i<=T;i++)
//{
	//cout<<v[i]<<" ";
//}
//cout<<" \n";

//cout<<"rezultat";

	for (int i=1;i<=T;i++)
	{  	
		
			//cout<<sumavectori[v[i]]%10<<" , ";
		fprintf(g,"%lld \n",(sumavectori[v[i]])%10);

	
	}

	fclose(f);
	fclose(g);
//cout<<"\n"<<calculeazasuma(5);
	
	return 0;
	}