Cod sursa(job #781105)

Utilizator slyfer12Damian Alexandru slyfer12 Data 23 august 2012 12:46:12
Problema Cifra Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <iostream>
#include <fstream>
#include <string>
#include <stdlib.h>
int pattern1[19]={1,5,2,8,3,9,2,8,7,0,1,7,0,6,1,7,4,8},pattern2[10]={7,4,1,8,5,2,9,6,3,0};
using namespace std;
int suma(int y,int x){
    int r=0;
   if(y){
     if(y%2==0)
    r=0;
    else
    r=9;}
    cout<<x+r;
    if(!y)
  return (pattern1[r+x-1])%10;
 return (pattern1[r+x])%10;
}
int period(int x,int y){
  if(y%10==9)
  return pattern2[x];
  else
    return pattern2[x-1];
}
int main()
{
    int t,i,k,z;string n;
       ifstream f("cifra.in");
       ofstream g("cifra.out");
       f>>t;
      for(i=1;i<=t;i++){
        f>>n;
        k=n.size();
        if(k==1)
        g<<suma(0,n[k-1]-'0')<<"\n";
        else{
          int p=(n[k-2]-'0')*10+n[k-1]-'0';
         int q=(period(n[k-2]-'0',n[k-1]-'0'));
                if(p%10!=9)
         z=((n[k-2]-'0'-1)*10+9);
         else
         z=p;
        g<<(q+suma(n[k-2]-'0',p-z-1))%10<<"\n";
      }}
      f.close();
      g.close();
    return 0;
}