Informatică, întrebare adresată de lilly2207, 9 ani în urmă

pbinfo problema #1424 sa postati va rog rezolvarea la problema asta.
Andrei este elev în clasa a V-a și își dorește mult un smartphone. Tatăl său știe de acest lucru și s-a gândit să-i facă o bucurie de ziua lui. Așa că a hotărât să-l ducă într-un magazin de telefoane să-și aleagă unul.

Fiecare telefon este inscripţionat cu un număr ce reprezintă performanţa acestuia. Cu cât numărul este mai mare, cu atât telefonul este mai bun. Andrei l-a dorit pe cel mai performant (cu numărul cel mai mare) dar tatăl lui i l-a cumpărat pe al doilea ca performanță.
Cerinta
Dându-se numărul n de smatphone-uri și performanța fiecăruia, să se determine:

1. Numărul cu care este inscripționat telefonul dorit de Andrei;
2. Numărul cu care este inscripționat telefonul pe care l-a primit Andrei.

Date de intrare
Fișierul de intrare smartphone.in conține pe prima linie un număr natural c (1 sau 2) reprezentând numărul cerinței ce trebuie rezolvată.

A doua linie conține numărul natural n reprezentând numărul de telefoane din magazin.
A treia linie conține n valori naturale distincte, separate prin câte un spaţiu, reprezentând performanțele telefoanelor.
Date de iesire
Fișierul de ieșire smartphone.out va conține pe prima linie un singur număr reprezentând răspunsul la cerința citită din fișierul de intrare.
Restrictii
1 ≤ n ≤ 10000
1 ≤ x ≤ 2000000000 (x = numărul inscripționat pe telefon)
Pentru c = 1 se va rezolva doar cerința 1. Pentru c = 2 se va rezolva doar cerința 2.

Răspunsuri la întrebare

Răspuns de express
2
#include <bits/stdc++.h>
using namespace std;
int n, i, maxx, z, x, k, v[10005];
int main()
{
    ifstream f("smartphone.in");
    ofstream g("smartphone.out");
    f >> k >> n;
    for(i = 1; i <= n; i ++)
    {
        f >> v[i];
        if(v[i] > maxx) maxx = v[i];
    }
    if(k == 1) { g << maxx; return 0; }
    for(i = 1; i <= n; i ++)
    {
        if(v[i] != maxx && v[i] > z) z = v[i];
    }
    if(k == 2) g << z;
    f.close();
    g.close();
    return 0;
}


nadirdiana: #include <bits/stdc++.h>
using namespace std;
int n, i, maxx, z, x, k, v[10005];
int main()
{
ifstream f("smartphone.in");
ofstream g("smartphone.out");
f >> k >> n;
for(i = 1; i <= n; i ++)
{
f >> v[i];
if(v[i] > maxx) maxx = v[i];
}
if(k == 1) { g << maxx; return 0; }
for(i = 1; i <= n; i ++)
{
if(v[i] != maxx && v[i] > z) z = v[i];
}
if(k == 2) g << z;
f.close();
g.close();
return 0;
}
Alte întrebări interesante