.campion
conectare | înregistrare | căutare
Pagina principală » Probleme » firma1

ultima problemă
grupă: mică
sursă: OMI 2016
ultimul articol
autor: Prof. Radu Vişinescu
ultimul software
autor: Prof. Emanuela Cerchez
.campion
firma1


Timp maxim de executie/test:
0.7 secunde
Memorie totala disponibila/stiva:
16 MB/1 MB

Gigel este profesor de informatica, dar la un moment al existentei sale a ajuns la concluzia ca trebuie sa îsi deschida o afacere proprie. Prin urmare, Gigel a înfiintat o firma care se ocupa cu închirieri de locuinte. Firma a prosperat fulminant, astfel ca acum firma lui Gigel are la dispozitie numeroase apartamente si realizeaza numeroase tranzactii. Ofertele si solicitarile sunt atât de multe, încât Gigel a decis ca pentru a raspunde eficient cerintelor clientilor trebuie sa realizeze un program.
În primul rând Gigel a luat harta zonei si a trasat pe ea un caroiaj pentru a putea identifica cu usurinta imobilele în care firma are apartamente de închiriat. Astfel a obtinut o matrice cu n linii (numerotate de la 1 la n) si m coloane (numerotate de la 1 la m), pozitia unui imobil fiind identificata prin numarul liniei si al coloanei în care este pozitionat imobilul.
Chiria pentru apartamentele situate în acelasi imobil este aceeasi. Deci Gigel trebuie sa retina pentru fiecare imobil numarul de apartamente disponibile si costul chiriei.
Gigel are nevoie de un program care sa execute eficient urmatoarele operatii:
1. închirierea unui apartament;
2. eliberarea unui apartament;
3. determinarea venitului total obtinut din închirieri într-o zona dreptunghiulara data.

Cerinta

Scrieti programul de care are nevoie Gigel!

Date de intrare

Fisierul de intrare firma1.in contine:
– pe prima linie numerele naturale n si m separate printr-un spatiu, reprezentand numarul de linii si respectiv numarul de coloane de pe harta;
– pe cea de a doua linie un numar natural p, reprezentând numarul de imobile;
– pe fiecare dintre urmatoarele p linii se afla informatii despre un imobil sub forma x y nrmax nr pret, cu semnificatia „imobilul este plasat pe linia x, coloana y, are nrmax apartamente de închiriat, dintre care nr sunt deja închiriate, chiria pentru fiecare fiind pret $”;
– pe linia urmatoare se afla un numar natural O, reprezentând numarul de operatii care se efectueaza;
– pe fiecare dintre urmatoarele O linii este descrisa câte o operatie; linia care descrie o operatie începe cu un numar natural reprezentând tipul operatiei (1, 2 sau 3).
Daca tipul operatiei este 1, urmeaza doua numere naturale x si y, separate printr-un spatiu, care reprezinta pozitia imobilului în care se închiriaza un apartament (daca în pozitia respectiva nu exista nici un imobil sau în imobilul respectiv nu mai sunt apartamente libere, operatia va fi ignorata).
Daca tipul operatiei este 2, urmeaza doua numere naturale x si y, separate printr-un spatiu, care reprezinta pozitia imobilului în care se elibereaza un apartament (daca în pozitia specificata nu exista nici un imobil, sau în imobil nu exista apartamente închiriate, operatia va fi ignorata).
Daca tipul operatiei este 3, urmeaza patru numere naturale x1 y1 x2 y2; (x1, y1) si (x2, y2) reprezentând coordonatele (linie, coloana) a doua colturi opuse ale unei zone dreptunghiulare de pe harta (aceasta operatie determina calcularea venitului obtinut din închirieri în zona respectiva si afisarea acestuia în fisierul de iesire).

Date de iesire

Fisierul de iesire firma1.out va contine câte o linie pentru fiecare operatie de tipul 3 din fisierul de intrare, linie pe care va fi scris venitul calculat de operatia respectiva. Se va pastra ordinea operatiilor din fisierul de intrare.

Restrictii si precizari

  • 100 <= n, m <= 1 000
  • 10 000 <= O <= 50 000
  • 1 <= p <= 100 000
  • Toate coordonatele x, y sunt corecte (1 <= x <= n, 1 <= y <= m)
  • 0 <= nr <= nrmax <= 100; 1 <= pret <= 100
  • Nu exista doua imobile plasate în aceeasi pozitie.
  • Venitul total din orice zona nu depaseste 2 000 000 000.

Exemplu

firma1.in firma1.out
4 5
3
2 2 50 5 10
4 2 70 0 15
3 5 20 2 4
12
3 1 2 4 4
1 1 4
1 2 2
2 3 5
2 3 5
1 4 2
3 4 1 2 5
2 1 1
2 3 5
1 3 5
1 4 2
3 4 5 3 1

50
75
34

prof. Emanuela Cerchez
Liceul de Informatica "Grigore Moisil" Iasi
Contact:emanuela.cerchez@gmail.com

propunător: Prof. Emanuela Cerchez
emanuela.cerchez@gmail.com
Articole recomandate
Probleme recomandate
De la .campion 2005: cuc, prime, radio, text2, honest, police, comori, patrate3, fisc, ref, pcod, zmeu, loc, nr01, scor2, judete, strict, convert, bile3, cod2, depou, auto2, tree, cat, nr3, chimie2, compress, jobs, leaves, zid, politics, onu2, ploaia, grazing, pstring, cartonase2, exp, cartoane, sir3, program, scoici, playlist, sqr, cai1, farfurii, joc1, trafic, carte, set, barbie, labirint, vile, game, donald, ambigram, dans, albinuta, rlcs, stea, submatrix, cub1, ham, sponsori, young, jokes, pizza1, albine, lot, atac1, monede1, count, exam, herbert, sudoku, bio, metro
De acelaşi autor: celule, scp, vedete, film, ab, supertri, inginer, camp, sl, detinut, simetric, egal, gropi, ruleta, carti, tgv, uscat, afise, dezbateri, bunici, rv, onu, nspecial, secvop, cadou, chimie, reteta, piticot, petrol, checkin, teanc, index, teren, pizza, ecran, drum, text, lbd, aven, spam, pluricex, tren2, gray, pasi, mgo, joc, anagrame, vecini, criptmat, maxim, cutie, party, friends, net, sablon, hd, pc, sir2, aztec, scara, nr, robot2, sah, formule, ed, bilete, hanoig, flood, matrice3, erdos, grup, cd, kfactor, np, cuc, radio, honest, ref, nr01, scor2, convert, auto2, compress, politics, pm, playlist, barbie, submatrix, ham, pizza1, exam, ants, teatru1, cifre1, bile1, caini, secvreg, pasune, remi, m01, sir23, tren1, joc5, pachete, aedaro, windows, renju, latime, mere1, piloti, peste, pitici, sirag1, stive, turn1, carti1, program1, spioni, kgb, lift, apel, lex, oras, homeless, subsir, dist, harta1, adevar, joc10, bare, zapezi, masina2, perechi1, raft, joc11, joc12, ferma, fni, tunel, lover, pepsi, transport, avion, monkey, premii1, garaj, carti2, tv, pact, fat, cafea, echipe1, secvente, petrom, peg, scara1, lant, ecuatii, stiva, bile4, jungla, rj, poli, text1, compus1, rez, politie, anag, codul, coment, muzeu, seti, basm, timer, secvsir, dp, placa, prod3, bursa, submdisj, sotron1, fazan, secvpar, joker, lego, medalii, cfr, antipatie, figura, links, segm, colorare, brazi, mobil, distsir, guess, greiere, pestera, conferinta, chei, ny, nx, ghinion, sumb, drenaj, telecomanda, grupuri, mahjong, rotund, viena, sport2, cos, monoton, micro, valet, nr0, maxviz, anagramabil, nrpal, lista, dame, consiliu, adprod, arme, deal, prodnr, compar, latin, interviu, vintage, prize, nrdiv, arrows, tdrept, agenda, reziston, vot2, tema, smiley, relatii, ech, scadere, nebuni, castig, expand, wb, prime2, virgule, b210
Despre arbori: bonuri, tgv, barfa, votare, arce, balaur, trains, bile2, vmem, plopi, caravane, mese, strict, tree, sub, kinder, albinuta, rlcs, masina, omizi, concurs1, latime, piloti, barca1, arbnr, sirag1, pikachu, arb, logn, maxq, arbore, bcast, mesaj1, traseu, asmax, salvare, tramvai1, omida, sediu, string, tv, izo, zoo, ratina, vitale, camion1, arbfind, cezar1, tcast, dep, curent, spp, frunze, sea2, culori, color, urgenta, nori, treegame, antipatie, scanduri, minuni, arb1, activ, regat, kdtree, autostrazi, carray, trenuri1, arbgraf, war, mess, secvnumber, subs, posta, radare, arbore1, hacker, lista, codarb, subsecvente, confuzie, transform, arbsum, copaci3, arbvalmax
Software recomandat
surse trimise | ajutor