Informatică, întrebare adresată de bpie, 8 ani în urmă

Problema daruri, de pe camion

Moş Crăciun care-i darnic şi e bun, văzând că ministerul de resort nu se grăbeşte să doteze şcolile cu tablete şi laptop-uri, ia decizia să doteze un număr cât mai mare de şcoli cu aceste unelte atât de necesare elevilor. El are la dispoziţie un număr T de tablete şi un număr L de laptopuri. Cum moşul nu vrea să nedreptăţească nicio şcoală, el se gândeşte să distribuie toate obiectele, punând în pachetul fiecărei şcoli acelaşi număr de tablete şi acelaşi număr de laptop-uri.

Cerinţă
Scrieţi un program care determină numărul maxim de şcoli ce vor primi pachete, precum şi câte tablete şi câte laptop-uri se găsesc în fiecare pachet.

Date de intrare
De pe prima linie din fişierul de intrare daruri.in se citesc două numere naturale T şi L separate printr-un spaţiu, unde T este numărul de tablete, iar L numărul de laptop-uri pe care le are moşul în stoc.

Date de ieşire
Pe prima linie în fişierul daruri.out se va afişa un număr ce reprezintă numărul maxim de şcoli ce vor primi daruri de la Moş Crăciun, iar pe următoarea linie se vor afişa două numere separate printr-un spaţiu reprezentând numărul de tablete şi numărul de laptop-uri care intră în componenţa unui pachet. Dacă moşul nu reuşeşte să facă cel puţin 2 pachete, el renunţă la ideea sa şi în fişierul de ieşire se va afişa pe primul rând 0, iar pe al doilea rând 0 0.

Restricţii
• 1 ≤ T
L ≤ 1000

Exemple
daruri.in daruri.out
10 15 5 2 3
Explicaţii
Se pot forma maxim 5 pachete, fiecare pachet conţinând 2 tablete şi 3 laptopuri.
daruri.in daruri.out
12 25 0 0 0
Explicaţii
Moşul nu reuşeşte să facă cel puţin două pachete.
Va rog, ajutati-ma!

Răspunsuri la întrebare

Răspuns de iulyus01
1

#include <iostream>

using namespace std;

int main(){

   int t, l, t1, l1;

   cin>>t>>l;

   t1 = t;

   l1 = l;

   while(t != l) {

       if(t > l) t -= l;

       else l -= t;

   }

   if(t == 1) cout<<"0 0 0";

   else cout<<t<<" "<<t1 / t<<" "<<l1 / t;

}


Alte întrebări interesante