👤

Buna seara tuturor. Astazi am incercat sa rezolv 2 probleme de pe campion.edu.ro si am esuat. Proabil in ambele s-au gasit greseli.

Prima problema Pinochio:

În fiecare zi nelucrătoare din săptămână, Pinochio spune câte o minciună datorită căreia nasul acestuia creşte cu câte p centimetri pe zi. Sâmbăta şi duminica, când vine bunicul Gepeto acasă, pentru a nu-l supăra prea tare, Pinochio reuşeşte să nu spună nici o minciună, ba chiar uitându-se în oglindă observă că în fiecare din aceste zile lungimea nasului său scade cu câte 1 centimetru pe zi. Când începe o nouă săptămână, rămânâd singur acasă Pinochio continuă şirul minciunilor.

Cerinţă
Care este dimensiunea nasului lui Pinochio după k zile ştiind că iniţial nasul său măsura n centimetri.

Date de intrare
Din fişierul de intrare pinochio.in se citesc valorile n p k, care se găsesc pe prima linie a fişierului şi sunt separate prin câte un spaţiu.

Date de ieşire
În fişierul de ieşire pinochio.out se va afişa pe prima linie un singur număr natural, numărul de centimetri cerut de problemă.

Restricţii
1≤n≤1000
1≤k≤256
1≤p≤100

Exemple
pinochio.in pinochio.out
2 1 8 6



Problema 2 pizza:

De ziua ei Mariuca îsi invita prietenii la pizza. Nici unul dintre prietenii Mariucai nu poate mânca o pizza întreaga, dar fiecare dintre ei stie exact cât poate mânca (un sfert, o jumatate sau trei sferturi) si insista sa-si primeasca pizza într-o singura felie.

Cerinta
Scrieti un program care sa determine numarul minim de pizza pe care Mariuca trebuie sa le comande astfel încât fiecare copil sa îsi primeasca bucata de pizza dorita.

Date de intrare
Fisierul de intrare pizza.in contine pe prima linie un numar natural N reprezentând numarul de prieteni pe care Mariuca îi invita la pizza. Pe urmatoarele N linii sunt descrise preferintele celor N copii, câte o preferinta pe o linie. Linia i+1 va contine o fractie (1/4, 1/2 sau 3/4) care reprezinta dimensiunea feliei pe care o doreste copilul i.

Date de iesire
Fisierul de iesire pizza.out va contine o singura linie pe care va fi scris un singur numar natural, reprezentând numarul minim de pizza pe care Mariuca trebuie sa le comande.

Restrictii
1 <= N <= 10000

Exemple
pizza.in pizza.out
3 3
1/2
3/4
3/4

Mersi Mult!


Răspuns :

Problema pizza :

#include<cstdio>
#include<algorithm>
using namespace std;
int n,i,j,p,q,nr,s,a,b,c;
bool ok;
int main()
{
    freopen("pizza.in","r",stdin);
    freopen("pizza.out","w",stdout);
    scanf("%d",&n);
    a=0; b=0; c=0;
    for (i=1;i<=n;i++)
    {
        scanf("%d/%d",&p,&q);
        if ((p==1)&&(q==2)) a++;
        if ((p==1)&&(q==4)) b++;
        if ((p==3)&&(q==4)) c++;
    }
    if (a%2==1) { a++; ok=true; }
    if ((ok==true)&&(b%4<=2)) b=b-b%4;
    b=b-c; if (b>0) printf("%d",c+(a/2)+(b+3)/4);
               else printf("%d",c+(a/2));
return 0;
}

Problema pinochio :
#include <bits/stdc++.h>
using namespace std;
int n, p, k, s, nrs, r, lung;
int main()
{
    ifstream f("pinochio.in");
    ofstream g("pinochio.out");
    f >> n >> p >> k;
    s = 5 * p - 2;
    nrs = k / 7;
    r = k % 7;
    if(r <= 5) lung = n + r * p + nrs * s;
    if(r == 6) lung = n + 5 * p - 1 + nrs * s;
    g << lung;
    return 0;
}