moara

Time limit: 0.3s Memory limit: 4MB Input: moara.in Output: moara.out

Una-i să sortezi cartoane, alta-i să sortezi vagoane!

La poarta unei mori se află nn saci, etichetaţi cu numere de la 11 la nn, aşezaţi în linie, într-o ordine dată. Sacul cu eticheta ii are greutatea gig_i.

Morarul cere ucenicului său să reaşeze sacii în ordinea crescătoare a etichetelor. Cum nu este spaţiu de manevră pentru a schimba sacii între ei, ucenicul ia un scaun şi-l aşează lângă poziţia kk din şir, alege un sac şi-l pune pe scaun, ia alt sac şi-l mută în locul gol, apoi aduce alt sac în locul eliberat de acesta, etc., sau aduce sacul de pe scaun în locul rămas gol. Repetă procedeul până când sacii ajung în ordinea cerută de morar. Scaunul nu se mută. Efortul depus de ucenic pentru mutatul unui sac, indiferent dacă acesta a fost pus sau nu pe scaun, este egal cu produsul dintre greutatea sacului şi distanţa pe care a fost transportat sacul. Distanţa dintre doi saci alăturaţi este egală cu unitatea.

Cerință

Se cere să se stabilească poziţia amplasării scaunului şi ordinea schimbării sacilor între ei, astfel încât ucenicul să facă un număr minim de mutări şi efortul depus de acesta să fie minim pentru numărul de mutări.

Date de intrare

Fişierul de intrare moara.in conţine pe prima linie numărul de saci nn, pe a doua linie ordinea aşezării sacilor, iar pe a treia linie şirul greutăţilor sacilor g1,g2,,gng_1, g_2, \dots, g_n.

Date de ieșire

Ieşirea se va face în fişierul moara.out, care va conţine:

  • pe prima linie p k e, unde pp este poziţia scaunului, kk este numărul de mutări şi ee este valoarea efortului depus;
  • pe fiecare din liniile următoare câte o mutare de forma d s, unde dd este poziţia destinaţie şi ss este poziţia sursă, poziţia scaunului se va nota cu 00.

Restricții și precizări

  • 2n5 0002 \le n \le 5\ 000
  • 1kn1 \le k \le n
  • 1gi<2561 \le g_i < 256, pentru 1in1 \le i \le n
  • Se acordă 30%30\% din punctaj dacă numărul de mutări afișat este corect și încă 30%30\% dacă efortul afișat este corect.

Exemplu

moara.in

5
2 4 3 5 1
3 5 1 2 4

moara.out

3 5 25
0 2
2 1
1 5
5 4
4 0

Log in or sign up to be able to send submissions!