Pentru a putea rula codul, te rugăm să te autentifici.

Autentifică-te
main.cpp

ID #747 · RAU Coder 2019 · Probleme cu stivă

Problema Evaluare expresie

Dificilă · 8

Memorie: 16 MB / 8 MB

Timp: 0.1 secunde

I/O: Fișiere

Cerință

Se consideră o expresie aritmetică formată din numere naturale și operatorii binari + (adunare), - (scădere), * (înmulțire), ^ (ridicare la putere). Să se determine forma postfixată corespunzătoare și să se calculeze valoarea expresiei.

Spunem că expresia este în formă infixată dacă fiecare operator binar este încadrat de cei doi operanzi ai săi. Aceasta este de fapt forma uzuală a expresiilor aritmetice.

Spunem că expresia este în formă postfixată dacă fiecare operator este poziționat după operanzii săi, respectând prioritatea și regula de asociere a operatorilor. De exemplu, expresia aritmetică în formă infixată: 1 * 2 + 3 ^ 4 poate fi rescrisă în forma postfixată astfel: 1 * 2 + 3 ^ 4 → (parantezare) → ((1 * 2) + (3 ^ 4)) → (postfixare +) → ((1 * 2) (3 ^ 4) +) → (postfixare * și ^) → ((1 2 *) (3 4 ^) +) → (eliminare paranteze) → 1 2 * 3 4 ^ +. Valoarea expresiei date este 83.

Date de intrare

Fișierul de intrare evaluareexpresie.in conține pe un singur rând un șir de caractere ce reprezintă o expresie aritmetică corect construită ce poate conține numai operatorii binari +, -, *, ^, cu semnificațiile de mai sus, și operanzi constante numere naturale.

Date de ieșire

Fișierul de ieșire evaluareexpresie.out va conține pe prima linie un șir de caractere ce reprezintă forma postfixată a expresiei date, iar pe cel de-al doilea rând un număr natural ce reprezintă valoarea expresiei date. Pentru forma postfixată operanzii și operatorii vor fi separați cu câte un spațiu.

Restricții și precizări

  • Lungimea expresiei din fișierul de intrare va fi de cel mult 50 de caractere
  • Rezultatul final precum și rezultatele intermediare se vor încadra în tipul de date long long
  • Expresia este corectă și nu conține alte caractere în afară de cifre și operatorii +, -, *, ^

Exemple

evaluareexpresie.in

100-2*3^2

evaluareexpresie.out

100 2 3 2 ^ * -
82

Explicație

Pentru primul exemplu: 100 - 2 * 3 ^ 2 → (100 - (2 * (3 ^ 2))) → (100 - (2 * (3 2 ^))) → (100 - (2 (3 2 ^) *)) → (100 (2 (3 2 ^) *) -) → 100 2 3 2 ^ * -. Valoare expresiei este 82.

Pentru al doilea exemplu: 1 + 2 + 2 ^ 3 ^ 2 → ((1 + 2) + ((2 ^ 3) ^ 2)) → ((1 2 +) +((2 3 ^) ^ 2)) → ((1 2 +) + ((2 3 ^) 2 ^)) → ((1 2 +) ((2 3 ^) 2 ^) +) → 1 2 + 2 3 ^ 2 ^ +. Valoare expresiei este 67.

evaluareexpresie.in

1+2+2^3^2

evaluareexpresie.out

1 2 + 2 3 ^ 2 ^ +
67

Explicație

Pentru primul exemplu: 100 - 2 * 3 ^ 2 → (100 - (2 * (3 ^ 2))) → (100 - (2 * (3 2 ^))) → (100 - (2 (3 2 ^) *)) → (100 (2 (3 2 ^) *) -) → 100 2 3 2 ^ * -. Valoare expresiei este 82.

Pentru al doilea exemplu: 1 + 2 + 2 ^ 3 ^ 2 → ((1 + 2) + ((2 ^ 3) ^ 2)) → ((1 2 +) +((2 3 ^) ^ 2)) → ((1 2 +) + ((2 3 ^) 2 ^)) → ((1 2 +) ((2 3 ^) 2 ^) +) → 1 2 + 2 3 ^ 2 ^ +. Valoare expresiei este 67.

ID #747 Autor RAU Coder 2019
Set RAU Coder 2019 Adăugată de Alexis Alexis lexington
Capitol Clasa a X-a/Structuri de date liniare/Probleme cu stivă
Licență

Problema aceasta a fost publicată sub licența CC BY-SA 4.0. Indicațiile sunt publicate sub licența CC BY-SA 4.0, iar rezolvarea sub licența CC BY-SA 4.0. Licența InfoAs Standard License nu permite copierea sau modificarea fără acordul scris al autorilor. Platforma și toate funcționalitățile ei rămân în continuare proprietatea intelectuală Aspire Education Labs SRL. © 2021 – 2025 Aspire Education Labs SRL. Toate drepturile rezervate.

Indicații oficiale de rezolvare a problemei

Lorem ipsum, dolor sit amet consectetur adipisicing elit. Aperiam rem vel architecto dolore, nulla laboriosam atque laudantium sint commodi in molestiae excepturi dicta inventore eum, quos porro illum ratione ea! Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorum possimus dolores, molestiae sunt repellendus voluptate qui asperiores maiores cumque, quidem nihil facere distinctio! Odit, a? Nisi nostrum quod delectus corporis?

Lorem ipsum dolor sit amet consectetur adipisicing elit Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorum possimus dolores, molestiae sunt repellendus voluptate qui asperiores maiores cumque, quidem nihil facere distinctio! Odit, a? Nisi nostrum quod delectus corporis?

Lorem ipsum dolor sit amet consectetur adipisicing elit Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorum possimus dolores, molestiae sunt repellendus voluptate qui asperiores maiores cumque, quidem nihil facere distinctio! Odit, a?

#include <bits/stdc++.h>

    using namespace std;

    int main() {
        int n;
        cin >> n;
        cout << n * n << endl;
        return 0;
    }

Lorem:

Subtitle

Lorem ipsum, dolor sit amet consectetur adipisicing elit. Aperiam rem vel architecto dolore, nulla laboriosam atque laudantium sint commodi in molestiae excepturi dicta inventore eum, quos porro illum ratione ea! Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorum possimus dolores, molestiae sunt repellendus voluptate qui asperiores maiores cumque, quidem nihil facere distinctio! Odit, a? Nisi nostrum quod delectus corporis?

Lorem ipsum dolor sit amet consectetur adipisicing elit Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorum possimus dolores, molestiae sunt repellendus voluptate qui asperiores maiores cumque, quidem nihil facere distinctio! Odit, a? Nisi nostrum quod delectus corporis?

Lorem ipsum dolor sit amet consectetur adipisicing elit Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorum possimus dolores, molestiae sunt repellendus voluptate qui asperiores maiores cumque, quidem nihil facere distinctio! Odit, a?

Lorem:

Pentru a vizualiza indicațiile problemei, te rugăm să te autentifici.

Indicații oficiale de rezolvare a problemei

Lorem ipsum, dolor sit amet consectetur adipisicing elit. Aperiam rem vel architecto dolore, nulla laboriosam atque laudantium sint commodi in molestiae excepturi dicta inventore eum, quos porro illum ratione ea! Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorum possimus dolores, molestiae sunt repellendus voluptate qui asperiores maiores cumque, quidem nihil facere distinctio! Odit, a? Nisi nostrum quod delectus corporis?

Lorem ipsum dolor sit amet consectetur adipisicing elit Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorum possimus dolores, molestiae sunt repellendus voluptate qui asperiores maiores cumque, quidem nihil facere distinctio! Odit, a? Nisi nostrum quod delectus corporis?

Lorem ipsum dolor sit amet consectetur adipisicing elit Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorum possimus dolores, molestiae sunt repellendus voluptate qui asperiores maiores cumque, quidem nihil facere distinctio! Odit, a?

#include <bits/stdc++.h>

    using namespace std;

    int main() {
        int n;
        cin >> n;
        cout << n * n << endl;
        return 0;
    }

Lorem:

Subtitle

Lorem ipsum, dolor sit amet consectetur adipisicing elit. Aperiam rem vel architecto dolore, nulla laboriosam atque laudantium sint commodi in molestiae excepturi dicta inventore eum, quos porro illum ratione ea! Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorum possimus dolores, molestiae sunt repellendus voluptate qui asperiores maiores cumque, quidem nihil facere distinctio! Odit, a? Nisi nostrum quod delectus corporis?

Lorem ipsum dolor sit amet consectetur adipisicing elit Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorum possimus dolores, molestiae sunt repellendus voluptate qui asperiores maiores cumque, quidem nihil facere distinctio! Odit, a? Nisi nostrum quod delectus corporis?

Lorem ipsum dolor sit amet consectetur adipisicing elit Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorum possimus dolores, molestiae sunt repellendus voluptate qui asperiores maiores cumque, quidem nihil facere distinctio! Odit, a?

Lorem:

Pentru a vizualiza rezolvarea problemei, te rugăm să te autentifici.

Soluții trimise la problema Evaluare expresie

Soluții trimise 8
Soluții de 100 de puncte 1
Soluții de luna aceasta La fel de multe ca luna trecută. 0 +0
Rata de succes Rata dintre numărul de persoane care au obținut 100 de puncte și numărul total de persoane care au încercat problema. 50%

Autentifică-te pentru a vedea soluțiile tale.

Autentifică-te
  • Toate soluțiile tale le găsești aici. Găsești toate detaliile evaluării mai târziu, precum punctaje și sfaturi primite.
  • Poți să editezi soluțiile tale și să le retrimiți. Reia mai târziu de unde ai rămas, pentru că poți modifica soluții și să le reevaluezi.
  • Profesorii pot să vadă soluțiile tale și să îți trimită sugestii. Astfel, îți este mai ușor să înveți informatica, primind sfaturi bune chiar de la școală.

Ultimele soluții trimise 8

10 1000000 10 10000 1000000
10000 10000 10000000 100000 100
100 1000 10000000 1000 100000
10 10000000 100000 10000 10
100000 1000 100000 10000000 10
100000 10000 1000 10000000 10000000
10000000 10 10000000 1000 1000
1000000 100 10000 100000 10
100000 10 10 1000000 10
10000 1000 10000000 10000 10
Tabelul se actualizează în timp real. ?? / ??

Comentarii 0

Autentifică-te pentru a putea comenta.

Autentifică-te