1 - Kombinovanje
Vremensko ograničenje | Memorijsko ograničenje |
---|---|
1000ms | 256MB |
Naš omiljeni čarobnjak je poznat po tome što voli da se hvali kako ima ne jedan, već dva automobila. Kako nikog od njegovih prijatelja ne želi da 58. put sluša o njima, čarobnjak je odlučio da ih iskombinuje u jedan.
Oba automobila možemo predstaviti kao matrice \(A\) i \(B\) nenegativnih celih brojeva dimenzija \(N \times N\). Kombinovanjem dva automobila nastaje novi automobil čija se vrednost računa kao suma proizvoda elemenata početnih matrica, tj. vrednost automobila je \(\sum_{i=1}^N\sum_{j=1}^NA_{ij}B_{ij}\). Čarobnjakov cilj je da napravi auto što veće vrednosti.
Čarobnjak može da zameni bilo koja dva reda ili bilo koje dve kolone drugog automobila. Dobroćudni čarobnjak želi da i vi učestvujete u čarima kombinovanja automobila. Vaš zadatak je da mu date niz transformacija matrice \(B\). Čarobnjak će učiniti da vaš broj poena na ovom zadatku bude proporcionalan vrednosti automobila koji se dobija kombinovanjem početna dva.
Napomena
Ovo je zadatak sa poznatim ulazom (output-only zadatak). Vama su dati ulazni fajlovi (1.in
, 2.in
, 3.in
, 4.in
), dok vi treba da pošaljete samo odgovarajuće izlazne fajlove za njih (1.out
, 2.out
, 3.out
, 4.out
).
Opis ulaza
U prvom redu ulaznih fajlova nalaze se tri prirodna broja \(N\), \(P\) i \(Q\) - dimenzija automobila, kao i parametri za bodovanje. U narednih \(N\) redova se nalazi po \(N\) brojeva koji predstavljaju automobil \(A\). U preostalih \(N\) redova se nalazi po \(N\) brojeva koji predstavljaju automobil \(B\).
Opis izlaza
Na početku vaših izlaznih fajlova treba da se nalazi prirodan broj \(M\), broj transformacija. Nakon toga potrebno je ispisati \(M\) linija tako da \((i+1)\)-va sadrži tip transformacije - jedan karakter \(T_i\) (R
ako je željena transformacija zamena redova, ili C
inače), kao i dva broja \(X_i, Y_i\), (\(1 \leq X_i, Y_i \leq N\)) koji predstavljaju indekse kolona i vrsta koje želite da zamenite.
Primer 1
Ulaz
Izlaz
Objašnjenje primera
Nakon zamene prvog i drugog reda, dobijena je sledeća matrica:
Bodovanje
Vaše rešenje za neki od ulaza će se smatrati nevažećim ukoliko je ispunjen bar jedan od sledećih uslova:
- \(M > 2 \times N^2\)
- \(T_i\) nije ni 'R' ni 'C'
- \(X_i\) ili \(Y_i\) nisu u intervalu \([1, N]\)
- Ulaz ne sadrži \(M+1\) liniju
U suprotnom, neka je $k$ vrednost koju postiže vaše rešenje.
- Ukoliko važi \(k \geq Q\), osvajate 25 poena za taj ulaz;
- Ukoliko važi \(k \leq P\), osvajate 0 poena za taj ulaz;
- Inače, osvajate \(\lfloor 25\frac{k - P}{Q - P}\rfloor\) poena za taj ulaz.
Autor | Tekst i test primeri | Analiza rеšenja | Testiranje |
---|---|---|---|
Dušan Zdravković | Momčilo Topalović | Nikola Spasić | Aleksa Plavšić |
S obzirom da početna konfiguracija matrice može biti ciljano postavljena u nepovoljan položaj kolone, i redovi matrice se izmešaju na sledeći način. Za svako \(i\) slučajno se biraju dva broja \(j\) i \(k\) i zatim se \(i\)-ta kolona zameni sa \(j\)-tom a \(i\)-ti red sa \(k\)-tim redom.
Zatim prođe se kroz sve parove \((i, j)\) i ukoliko bi se zamenom \(i\)-te i \(j\)-te kolone rezultat poboljšao kolone se zamene, zatim ukoliko bi se zamenom \(i\)-tog i \(j\)-tog reda rezultat poboljšao redovi se zamene.
Prethodno prolazenje kroz sve parove ponovi se 20 puta.
Nakon toga izaberu se 4 slučajna broja \(a\), \(b\), \(c\) i \(d\) i ukoliko bi se zamenom \(a\)-te i \(b\)-te kolone a zatim zamenom \(c\)-tog i \(d\)-tog reda poboljšao rezultat pomenute kolone i redovi se zamene.
Poslednji opisan deo ponovimo \(20*n^2\) puta.