#3512
Se dau n numere naturale. Să se calculeze produsul factorialelor acestora, modulo 1.000.000.007.
| Problema | FactorialQuery | Operații I/O |
tastatură/ecran
|
|---|---|---|---|
| Limita timp | 0.3 secunde | Limita memorie |
Total: 5 MB
/
Stivă 0.7 MB
|
| Id soluție | #64020437 | Utilizator | |
| Fișier | factorialquery.cpp | Dimensiune | 637 B |
| Data încărcării | 07 Aprilie 2026, 12:11 | Scor/rezultat | 100 puncte |
factorialquery.cpp: In function 'char getChar()': factorialquery.cpp:11:58: warning: ignoring return value of 'size_t fread(void*, size_t, size_t, FILE*)', declared with attribute warn_unused_result [-Wunused-result] if (++q == 8192) { q = 0; fread(buff, 1, 8192, stdin); } return buff[q]; } int getInt() { int x = 0; while ((c = getChar()) && isdigit(c)) x = x*10 + c-'0'; return x; } int main() { cin >> n; cin.get(); for (int i = 1; i <= n; ++i) v[i] = getInt(); sort(v + 1, v + n+1); int ans = 1; long long tmpFact = 1; int k = 0; for (int i = 1; i <= n; ++i) { while (k < v[i]) tmpFact = tmpFact * ++k % MOD; ans = ans * tmpFact % MOD; } cout << ans; return 0;} ^
| Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
|---|---|---|---|---|---|---|
| 1 | 0 secunde | OK. | 20 | 20 | Exemplu | |
| 2 | 0 secunde | OK. | 20 | 20 | ||
| 4 | 0.136 secunde | OK. | 20 | 20 | ||
| 5 | 0.164 secunde | OK. | 20 | 20 | ||
| 6 | 0.24 secunde | OK. | 20 | 20 | ||
| Punctaj total | 100 | |||||
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema FactorialQuery face parte din prima categorie. Soluția propusă de tine va fi evaluată astfel:
Suma punctajelor acordate pe testele utilizate pentru verificare este 100. Astfel, soluția ta poate obține cel mult 100 de puncte, caz în care se poate considera corectă.