Cod sursa(job #155636)

Utilizator vlad_olteanVladimir Oltean vlad_oltean Data 12 martie 2008 00:59:55
Problema Cifra Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.03 kb
#include<string.h>
#include<fstream>
using namespace std;
int t,n,uc=0;
int calculat[100]={-1};

ifstream fin("cifra.in");
ofstream fout("cifra.out");

void citeste()
{   char c[100]={0};
    int count=0;

    fin.get(c,100,'\n');
    fin.get();
    count=strlen(c);

    switch (count)
    {   case 1: {n=c[0]-'0';break;}
	case 2: {n=10*(c[0]-'0')+c[1]-'0';break;}
	default: n=10*(c[count-2]-'0')+c[count-1]-'0';
    }
}

void scrie()
{
    fout<<uc<<endl;
}

void rezolva()
{   int i,j;
    int ir;
    int temp;

    fin>>t;
    fin.get();

    while(t--)
    {   citeste();
    	if(calculat[n]==-1)
	{   uc=0;
	    for(i=1;i<=n;i++)
	    {    temp=i/4;
		 ir=i-4*temp;
		 if(!ir) ir=4;

		 temp=i;
		 for(j=1;j<ir;j++)
		 {    temp*=ir;
		      temp%=10;
		 }
		 uc+=temp;
		 uc%=10;
	    }
	    calculat[n]=uc;
	} else uc=calculat[n];
        scrie();
    }
}

int main()
{
    for(int i=0;i<100;i++) calculat[i]=-1;
    rezolva();
    fin.close(); fout.close();
    return 0;
}