#143
permutari3
Se dă o permutare P
a mulțimii {1,2, … ,N}
. Se mai dau Q
întrebări specificate prin câte un număr D
.
Dacă D
este pozitiv trebuie să determinăm a D
-a permutare care succede lexicografic P
iar dacă D
este negativ, a D
-a permutare care precede lexicografic P
.
Problema | permutari3 | Operații I/O |
![]() permutari3.in /permutari3.out
|
---|---|---|---|
Limita timp | 0.1 secunde | Limita memorie |
Total: 64 MB
/
Stivă 8 MB
|
Id soluție | #58088654 | Utilizator | |
Fișier | permutari3.cpp | Dimensiune | 1.23 KB |
Data încărcării | 13 Mai 2025, 15:16 | Scor / rezultat | Eroare de compilare |
permutari3.cpp:1:1: error: expected unqualified-id before string constant "#include <fstream>\n\nusing namespace std;\n\nlong long F[30], poz, x, sum;\nlong long P[30];\nlong long i, n, j, k, Q, nr;\nlong long v[30];\n\nint main() {\n F[1] = F[0] = 1;\n for (i=2;i<=19;i++)\n F[i] = i * F[i-1];\n\n ifstream fin(\"permutari3.in\");\n ofstream fout(\"permutari3.out\");\n\n fin>>n;\n for (i=1;i<=n;i++)\n fin>>P[i];\n\n for (i=1;i<n;i++) {\n poz = poz + (P[i]-1)*F[n-i];\n for (j=i+1;j<=n;j++)\n if (P[j] > P[i])\n P[j]--;\n }\n\n// fout<<poz;\n poz;\n fin>>Q;\n for (;Q;Q--) {\n fin>>x;\n x += poz;\n // construim a x-a permutare\n for (i=1;i<=n;i++)\n v[i] = 1;\n for (i=1;i<=n;i++) {\n\n sum = 0;\n j=0;\n while (sum <= x) {\n sum += F[n-i];\n j++;\n }\n sum -= F[n-i];\n x -= sum;\n // caut al j-lea element marcat in v\n nr = 0;\n for (k=1;k<=n;k++) {\n nr += v[k];\n if (nr == j)\n break;\n }\n fout<<k<<\" \";\n v[k] = 0;\n }\n fout<<\"\\n\";\n }\n return 0;\n}" ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema permutari3 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ă.