TAKMIČENJA IZ PROGRAMIRANJA


Sva pitanja, predloge ili primedbe u vezi sa takmičenjima iz programiranja možete slati na e-mail:

tak.prog@gmail.com

U toku perioda za žalbe, sve žalbe možete slati na ovaj isti e-mail.

operacija.cpp    1,023 b      izvorni kod rešenja
operacija.tests.7z    831 b      test primeri

zadatak: Operacija

Data su četiri broja A, B, C i op. Vrednost op ima sledeće značenje:

  • op = 1 označava sabiranje,
  • op = 2 označava oduzimanje,
  • op = 3 označava množenje,
  • op = 4 označava deljenje.

Za date ulazne vrednosti ispisati 1 ako A op B = C, inače ispisati 0.

Ulaz.

(Ulazni podaci se učitavaju sa standardnog ulaza.) U prvom redu standardnog ulaza nalaze se prirodni brojevi A, B, C i op (0 ≤ A, B, C ≤ 10,000,000,000, 1 ≤ op ≤ 4).

Izlaz.

(Izlazne podatke ispisati na standardan izlaz.) U prvi i jedini red standardnog izlaza ispisati traženu vrednost.

Ograničenja.

U bar 50% test primera će op imati vrednost 1 ili 2.
60% test primera će imati vrednost A, B i C iz intervala [0, 100].

Primer 1.

standardni ulaz      standardni izlaz
1 2 3 1
        
1

Objašnjenje.

Izraz 1 + 2 = 3 je tačan, te je izlaz 1.

Primer 2.

standardni ulaz      standardni izlaz
2 1 2 4
        
1

Primer 3.

standardni ulaz      standardni izlaz
3 2 1 4
        
0

Objašnjenje.

3 / 2 = 1.5, te je izraz 3 / 2 = 1 netačan.

Primer 4.

standardni ulaz      standardni izlaz
4 5 21 3
        
0

Objašnjenje.

4 * 5 = 20.

Primer 5.

standardni ulaz      standardni izlaz
55 5 50 2
        
1
fajl: operacija.cpp
#include <iostream>
#include <cstdio>
#include <fstream>
#include <vector>
#include <cmath>
#define ffor(_a,_f,_t) for(int _a=(_f),__t=(_t);_a<__t;_a++)
#define all(_v) (_v).begin() , (_v).end()
#define sz size()
#define pb push_back
#define SET(__set, val) memset(__set, val, sizeof(__set))
#define FOR(__i, __n) ffor (__i, 0, __n)

using namespace std;

const int MAXN = 100001;

int a[MAXN];

char str[MAXN + 10];

int main(){

  long long A, B, C;
  int op;
  scanf("%lld %lld %lld %d", &A, &B, &C, &op);
    
  bool good = false;
  if (op == 1){
    if (A + B == C)
      good = true;
  }
  else if (op == 2){
    if (A - B == C)
      good = true;
  }
  else if (op == 3){
    if (B == 0 && C == 0)
      good = true;
    if (B != 0){
      op = 4;
      swap(A, C); // turn the problem into div
    }
  }
  if (op == 4){
    if (B != 0 && A % B == 0 && A / B == C)
      good = true;
  }
  
  if (good)
    printf("1\n");
  else
    printf("0\n");
  return 0;
}