OIJ – Omówienie zadania z Olimpiady Informatycznej Juniorów

OIJ – Omówienie zadania z Olimpiady Informatycznej Juniorów

Szczegółowe omówienie zadania OIJ:

Link do powyższego omówienia zadania OIJ:
https://youtu.be/gCxaqX1qcx4?t=2551
Omówienie kodu zadania OIJ:
https://youtu.be/gCxaqX1qcx4?t=3567

Link do treści zadania OIJ:
https://szkopul.edu.pl/problemset/problem/WawC7bmwUyPKAG25CCKdFiCP/site

Link do rozwiązań Olimpiady Informatycznej Juniorów:
https://oij.edu.pl/oij15/etap1/zadania/

——
Zadanie OIJ jest zadaniem wymagającym po prostu programowania.
W omówionym rozwiązaniu użyto instrukcji case C++:
https://youtu.be/cAQh5a4uBDw?t=3850
Podsumowanie instrukcji case – kiedy używać
https://youtu.be/cAQh5a4uBDw?t=4493
———
Zadanie OIJ pochodzi z I etapu, tury otwartej XV Olimpiady Informatycznej Juniorów.
Zadanie OIJ pięknie pokazuje. że każdy z nas może startować w Olimpiadzie Informatycznej!
Link do wszystkich zadań z Olimpiady Informatycznej Juniorów:
https://szkopul.edu.pl/task_archive/oig/
——–
Jak się uczyć na podstawie tego zadania?
https://youtu.be/QgLyXYmFQeU?t=2019
Pamiętaj by zajrzeć max 1 raz – wtedy się rozwijasz:
https://youtu.be/pkLXuuOe_qA?t=3625
——-

#include <bits/stdc++.h>
using namespace std;

int main(){
 string napis;
 int wynik, stan;
 int i;
 
 cin >> napis;
 
 wynik = 0;
 stan = 0;
 for ( i=0; i<(int)napis.size(); ++i ) {
    switch (napis[i]) {
	   case 'o': 
	      if (stan == 0)
	         stan = 1;
	      break; 
	   case 'i': 
		   if (stan == 1)
	          stan = 2;
	       break;
		case 'j': 
	       if (stan == 2) {
	           stan = 0;
	           ++wynik;
		   }
		   break;
	}	
 }

 if ( wynik )
    cout << wynik << "\n";
 else
    cout << "NIE" << "\n";

 return 0;
}
Kod C++ programu OIJ, który jest omówiony w powyższym filmie i który otrzymuje 100%
==================
Rozwiązanie zadania – język C++, instrukcja if

#include <bits/stdc++.h>;
using namespace std;

int main(){
 string napis;
 int wynik, stan;
 int i;
 
 cin >> napis;
 
 wynik = 0;
 stan = 0;
 for ( i=0; i<(int)napis.size(); ++i ) { 
    if ( (napis[i] == 'o') && (stan == 0) ) 
       stan = 1; 
    if ( (napis[i] == 'i') && (stan == 1) ) 
       stan = 2; 
    if ( (napis[i] == 'j') && (stan == 2) ) { 
       stan = 0; 
       ++wynik; 
     } 
 } 
 if ( wynik>0 )
    cout << wynik << "\n";
 else
    cout << "NIE" << "\n";

 return 0;
}

==================
Rozwiązanie zadania - język Python
wejscie=str(input())
szukana='o'
licznikznalezien=0
for litera in wejscie:
    if litera==szukana:
        licznikznalezien+=1
        if szukana=='o':
            szukana='i'
        elif szukana=='i':
            szukana='j'
        elif szukana=='j':
            szukana='o'
if licznikznalezien>=3:
    print(licznikznalezien//3)
else:
    print('NIE')

Nie dodano jeszcze komentarza, rozpocznij dyskusję pierwszy.

Dodaj komentarz