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.

sifra.cc    457 b      izvorni kod rešenja
sifra.checker.p    246 b      izvorni kod programa za testiranje
sifra.checker.exe    24,710 b      program za testiranje
sifra.tests.rar    1,385 b      test primeri

zadatak: Šifra

Mali Đurica je za rođendan dobio poklon spakovan u sefu. U svoj gužvi na žurci koju je Đurica organizovao, papir na kome je bila zapisana šifra se negde zaturio. Dragančetu, Đuricinom drugaru, koji mu je poklonio poklon u sefu, je šifra poznata, međutim on ne želi da kaže šifru Đurici. Nervozni Đurica je počeo nasumično da pritiska dugmiće na tastaturi (koja služi za unos šifre). Draganče je pažljivo pratio šta Đurica pritiska, i nakon što je Đurica prekinuo sa nervoznim kucanjem po tastaturi, Draganče je hteo da mu kaže koliko je puta Đurica otkucao šifru (u toku nasumičnog pritiskanja po tastaturi). Pomozite Dragančetu da tačno izbroji koliko puta je Đurica otkucao šifru.

Ulaz:

U ulaznoj datoteci ZAD2.DAT u prvom redu nalazi se ceo broj A (1 ≤ A ≤ 100), koji predstavlja dužinu šifre, nakon toga u drugom redu nalazi se A znakova, koji predstavljaju šifru. Šifra je sastavljena od malih slova engleskog alfabeta. Nakon toga, u trećem redu nalazi se ceo broj V (AV ≤ 10000), to je broj znakova koje je Đurica otkucao. U četvrtom redu nalazi se V znakova koji predstavljaju tekst. Ovaj tekst se takođe sastoji samo od malih slova engleskog alfabeta.

Izlaz:

U prvom redu izlazne datoteke ZAD2.RES ispisati ceo broj, koji predstavlja koliko je puta Đurica otkucao tačnu šifru.

Napomena:

Draganče broji i šifre koje je Đurica otkucao, a koje se preklapaju. Pogledati Primer 2.

Primer 1:

ZAD2.DAT      ZAD2.RES
2
ab
8
abbaabab
        
3

Primer 2:

ZAD2.DAT      ZAD2.RES
3
aca
5
acaca
        
2
fajl: sifra.cc
#include <iostream>
#include <fstream>

using namespace std;

int main(int argc, char** argv){

  ifstream tin("./zad20.dat");

  int A, B, i, j, K = 0;
  char Sifra[100], Text[10000];
  
  tin >> A;

  for (i=0; i<A; i++) 
    tin >> Sifra[i];

  tin >> B;
  for (i=0; i<B; i++)
    tin >> Text[i];

  bool Equal;
  for (i=0; i<(B-A+1); i++) {
    Equal = true;
    for (j=0;j<A;j++)
      Equal &= (Sifra[j]==Text[i+j]);
    if (Equal) K++;
  }

  ofstream("./zad20.res") << K;
}