fbpx

Problema #3484 – 3lan – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Se dau n numere naturale distincte. Pentru oricare două numere date, distincte, x şi y, se determină ultima cifră a numărului 333x•y şi se însumează cifrele obţinute. Aflaţi valoarea acestei sume.

Date de intrare

Fișierul de intrare 3lan.in conține pe prima linie numărul n, iar pe a doua linie cele n numere date, despărţite prin spaţii.

Date de ieșire

Fișierul de ieșire 3lan.out va conține pe prima linie suma cerută.

Restricții și precizări

  • 2 ≤ n ≤ 1000
  • cele n numere date sunt cel mult egale cu 10.000

Exemplu

3lan.in

2
9 0 

3lan.out

7

Explicație

Singura pereche de numere dintre cele date este 9 , 0, iar ultima cifră a numărului 3339•0 este 7.

#include <bits/stdc++.h>
using namespace std;

ifstream cin("3lan.in");
ofstream cout("3lan.out");

int n , a[1001] , s;

int treilan(int x , int y)
{
    int rest = (x * y) % 4 , nr1 , nr2;
    if(rest == 0) nr1 = 1;
    else if(rest == 1) nr1 = 3;
    else if(rest == 2) nr1 = 9;
    else if(rest == 3) nr1 = 7;
    nr1 %= 4;
    if(nr1 == 0) nr2 = 1;
    else if(nr1 == 1) nr2 = 3;
    else if(nr1 == 2) nr2 = 9;
    else if(nr1 == 3) nr2 = 7;
    nr2 %= 4;
    if(nr2 == 0) return 1;
    else if(nr2 == 1) return 3;
    else if(nr2 == 2) return 9;
    else if(nr2 == 3) return 7;
}

int main()
{
    cin >> n;
    for(int i = 1 ; i <= n ; i++)
        cin >> a[i];

    for(int i = 1 ; i <= n ; i++)
        for(int j = i + 1 ; j <= n ; j++)
            s += treilan(i , j);
    cout << s;
    return 0;
}
Comentarii

S-ar putea sa iti placa