#3396
Se dau două numere N și M urmate de un șir de numere întregi nenule S de lungime impară N indexat de la 0. Asupra acestuia se vor efectua fix M operații de swap. O operație reprezintă selectarea la întâmplare a doi indici (nu neapărat distincți) din intervalul [0, N – 1] și interschimbarea elementelor de pe pozițiile respective. Se consideră că șirul este alternant dacă nu există elemente alăturate având același semn. Determinați probabilitatea ca la finalul celei de-a M-a operații, șirul să fie alternant. (Se garantează că există cel puțin o aranjare a șirului astfel încât acesta să fie alternant). Se poate demonstra că probabilitatea cerută se poate reprezenta sub forma P / Q unde P si Q sunt prime între ele.
Info-Oltenia 2020, Clasele XI-XII
| Problema | alternant | Operații I/O |
alternant.in/alternant.out
|
|---|---|---|---|
| Limita timp | 1 secunde | Limita memorie |
Total: 8 MB
/
Stivă 2 MB
|
| Id soluție | #38904056 | Utilizator | |
| Fișier | alternant.cpp | Dimensiune | 2.31 KB |
| Data încărcării | 20 Octombrie 2022, 10:53 | Scor/rezultat | 100 puncte |
alternant.cpp: In function 'void computeMat(const int&, const int&, const int&, const int&)': alternant.cpp:58:28: warning: unused variable 'badA3' [-Wunused-variable] int goodA3=j+1,badA3=A-j-1, goodB3=B-(A-j-1),badB3=A-j-1; ^ alternant.cpp:58:58: warning: unused variable 'badB3' [-Wunused-variable] int goodA3=j+1,badA3=A-j-1, goodB3=B-(A-j-1),badB3=A-j-1; ^ alternant.cpp:54:13: warning: unused variable 'goodA2' [-Wunused-variable] int goodA2=j-1,badA2=A-j+1,goodB2=B-(A-j+1),badB2=A-j+1; ^ alternant.cpp:54:36: warning: unused variable 'goodB2' [-Wunused-variable] int goodA2=j-1,badA2=A-j+1,goodB2=B-(A-j+1),badB2=A-j+1; ^ alternant.cpp: In function 'void readData(int&, int&, int&, int&)': alternant.cpp:66:24: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] scanf("%d%d",&n,&m); ^ alternant.cpp:70:27: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] scanf("%d", &v[i]); ^
| Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
|---|---|---|---|---|---|---|
| 0 | 0 secunde | OK. | 5 | 5 | ||
| 1 | 0 secunde | OK. | 5 | 5 | ||
| 2 | 0 secunde | OK. | 5 | 5 | ||
| 3 | 0 secunde | OK. | 5 | 5 | ||
| 4 | 0 secunde | OK. | 5 | 5 | ||
| 5 | 0.156 secunde | OK. | 5 | 5 | ||
| 6 | 0 secunde | OK. | 5 | 5 | ||
| 7 | 0.148 secunde | OK. | 5 | 5 | ||
| 8 | 0.012 secunde | OK. | 5 | 5 | ||
| 9 | 0.22 secunde | OK. | 5 | 5 | ||
| 10 | 0.136 secunde | OK. | 5 | 5 | ||
| 11 | 0.2 secunde | OK. | 5 | 5 | ||
| 12 | 0.2 secunde | OK. | 5 | 5 | ||
| 13 | 0.2 secunde | OK. | 5 | 5 | ||
| 14 | 0.196 secunde | OK. | 5 | 5 | ||
| 15 | 0.452 secunde | OK. | 5 | 5 | ||
| 16 | 0.452 secunde | OK. | 5 | 5 | ||
| 17 | 0.452 secunde | OK. | 5 | 5 | ||
| 18 | 0.412 secunde | OK. | 5 | 5 | ||
| 19 | 0.484 secunde | OK. | 5 | 5 | ||
| Punctaj total | 100 | |||||
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema alternant 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ă.