Cod sursa(job #2664058)

Utilizator Liviuu23Ungureanu Liviu Liviuu23 Data 27 octombrie 2020 20:36:48
Problema Cifra Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.44 kb
#include "bits/stdc++.h"

using namespace std;
string adunare( string s1, string s2)
{
    while(s1.size() < s2.size()) {
        s1="0" + s1;
    }
    while(s2.size() < s1.size()) {
        s2="0" + s2;
    }

    int m = 0, r;
    string s;
    for ( int i = s1.size() - 1; i > 0 ; i--) {
        int c1 = s1[i] - '0';
        int c2 = s2[i] - '0';
        r = (c1 + c2 + m) % 10;
        m = (c1 + c2 + m) / 10;
        s = to_string(r) + s;
    }
    int c1 = s1[0] - '0';
    int c2 = s2[0] - '0';
    r = c1 + c2 + m;
    s = to_string(r) + s;
    return s;
}

string inc(string s, int c)
{
    int m=0;
    string r;
    for( int i=s.size()-1; i>=0; i-- ) {
        int c1= s[i]-'0';
        m=c*c1 + m;
        r= to_string(m%10) + r;
        m/=10;
    }
    if (m>0) {
        r= to_string(m) + r;
    }
    return r;
}

string putere(int a)
{
    string s,s1,s2;
    s=to_string(a);
    for (int i=1;i<a;i++){
        s1=inc(s,a);
        s=s1;
    }
    return s;
}
int main()
{
    ifstream cin("cifra.in");
    ofstream cout("cifra.out");
    int n,t;
    cin>>n;
    t=n;
    vector<int> v(n);

    for (int i = 0; i < n; i++) {
        cin>>v[i];
    }
    string s,s1,s3,s4;
    s="0";
    for (int i=1;i<=n;i++){
        s1=putere(i);
        s3=adunare(s,s1);
        s=s3;
        s4+=s3;
        reverse(s4.begin(),s4.end());
        cout<<s4[0]<<endl;
    }
    return 0;
}