Cerința
Mygo este un bun informatician, însă nu se prea descurcă la probleme de matematică. Șcuțu, bunul său prieten, s-a decis să-l ajute, și îi propune următoarea problemă: “Dându-se un vector A
cu 10
componente numere naturale, se întreabă câte numere distincte cu \( \sum\limits_{i=0}^9 A[i] \) cifre există astfel încât să conțină exact A[0]
cifre de 0
, A[1]
cifre de 1
, … A[9]
cifre de 9
?”. Mygo a promis că va rezolva această problemă, însă va da rezultatul modulo 666013
.
Date de intrare
Fișierul de intrare mygo.in
conține pe prima linie 10
numere naturale, reprezentând elementele vectorului A
.
Date de ieșire
Fișierul de ieșire mygo.out
va conține pe prima linie numărul S
, reprezentând răspunsul dat de Mygo.
Restricții și precizări
1 ≤
\( \sum\limits_{i=0}^9 A[i] \)≤ 1000
Exemplu
mygo.in
0 2 2 0 0 0 0 0 0 0
mygo.out
6
Explicație
Cele 6
numere sunt:
1122
1212
1221
2211
2121
2112
Cum e corect?
cout < "As la info";
cout << "As la info";
cout >> "As la info";
Felicitări! Poți mai mult?
Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.
Greșit, dar nu-i bai!
Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.
Rezolvare
Iată rezolvarea de 100 de puncte pentru problema Mygo:
//Popa Bogdan Ioan, clasa a 10-a, Colegiul National Aurel Vlaicu Orastie
#include <bits/stdc++.h>
#define md 666013
#define Nmax 1002
using namespace std;
ifstream fin("mygo.in");
ofstream fout("mygo.out");
int A[10];
int N;
int i, j;
int comb[Nmax][Nmax];
int sol;
int main()
{
for(i = 0; i < 10; i++)
fin >> A[i], N += A[i];
comb[0][0] = 1;
for(i = 1; i < N; i++)
for(j = 0; j <= i; j++)
comb[i][j] = (comb[i - 1][j] + comb[i - 1][j - 1]) % md;
for(i = 1; i < 10; i++)
if(A[i])
{
int cnt = 1, nr = 1;
for(j = 0; j < 10; j++)
{
cnt = (1ll * cnt * comb[N - nr][A[j] - (i == j)]) % md;
nr += A[j] - (i == j);
}
sol = (sol + cnt) % md;
}
fout << sol << "\n";
return 0;
}
Atenție
Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa .
Rezolvarea problemei #2011 Mygo
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #2011 Mygo de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.
Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!