OIJ 20 Omówienia zadań

OIJ XX - Omówienia zadań I etapu

Rozwiązania i kody zadań z I etapu Olimpiady Informatycznej Juniorów.

DOŁĄCZ do KONKURSU gdzie można ROZWIĄZYWAĆ zadania I etapu OLIMPIADY Informatycznej SZKÓŁ PODSTAWOWYCH: https://szkopul.edu.pl/c/oij-20/join/AUC8Q40QxiybVeDi3-AMHMB6/

Chwasty
Kod C++
#include "bits/stdc++.h"
using namespace std;

int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    int n,m;    cin>>n>>m;
    vector x(n);
    for(int i=0; i<n; i++) cin>>x[i];

    for(int i=0; i<n; i++)
    {
        for(int j=0; j<m; j++) 
        { 
            int c=0,k=0; 
            if(i-1>=0)
            {
                if(x[i-1][j]=='#') c++;
                if(x[i-1][j]=='*') k++;

                if(j-1>=0)
                {
                    if(x[i-1][j-1]=='#') c++;
                    if(x[i-1][j-1]=='*') k++;
                }

                if(j+1<m) 
                { 
                    if(x[i-1][j+1]=='#') c++; 
                    if(x[i-1][j+1]=='*') k++; 
                } 
            } 
            if(x[i][j]=='#') c++; 
            if(x[i][j]=='*') k++; 

            if(j-1>=0)
            {
                if(x[i][j-1]=='#') c++;
                if(x[i][j-1]=='*') k++;
            }

            if(j+1<m)
            {
                if(x[i][j+1]=='#') c++;
                if(x[i][j+1]=='*') k++;
            }

            if(i+1<n) 
            { 
                if(x[i+1][j]=='#') c++; 
                if(x[i+1][j]=='*') k++; 

                if(j-1>=0)
                {
                    if(x[i+1][j-1]=='#') c++;
                    if(x[i+1][j-1]=='*') k++;
                }

                if(j+1<m) 
                { 
                    if(x[i+1][j+1]=='#') c++;
                    if(x[i+1][j+1]=='*') k++; 
                } 
            } 
            if(k>c) cout<<'*';
            else if(c>k) cout<<'#';
            else cout<<'.';
        }
        cout<<'\n';
    }
}
Podzielność Iloczynu
Treść Omówienie
Kod C++
Kod Python
Kod C++
#include "bits/stdc++.h"
using namespace std;
const int MOD=1e9+7;
const int MAXN=1e6+3;
#define ll long long
#define ff first
#define ss second
#define vi vector
#define pii pair<int,int>


int main()
{
    ios_base::sync_with_stdio(0);   cin.tie(0);

    int n; cin>>n;
    bool par=false, trzy=false;

    for(int i=0; i<n; i++) 
    { 
        int a; cin>>a;
        if(a%2==0) par=true;
        if(a%3==0) trzy=true;
    }

    if(par==true && trzy==true)  cout<<"TAK"<<'\n';
    else cout<<"NIE"<<'\n';

}
Kod Python
def main():
    n=int(input())
    tab=list(map(int,input().split()))
    
    par=False
    czy3=False
    
    for i in range(n):
        if tab[i]%2==0:
            par=True
        if tab[i]%3==0:
            czy3=True
    
    if czy3 and par:
        print("TAK")
    else:
        print("NIE")
        
main()
Równanie
Treść Omówienie
Kod C++
Kod Python
Kod C++
#include <bits/stdc++.h>
using namespace std;

int main() {
 int a, b, c, x, y;
 int lewa_strona;

 cin >> a >> b >> c;
 cin >> x >> y;

 lewa_strona = a*x + b*y;

 if (lewa_strona == c) 
    cout << "TAK\n";
 else 
    cout << "NIE\n";

 return 0;
}
Kod Python
def main():
    a, b, c = map(int, input().split())
    x, y = map(int, input().split())

    lewa_strona = a*x + b*y

    if lewa_strona == c:
        print("TAK")
    else:
        print("NIE")

main()
Zepsuta Klawiatura
Kod C++
#include <bits/stdc++.h>
using namespace std;


int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    string s;
    cin>>s;

    bool tab[s.size()];
    for (int i=0;i<s.size();i++) tab[i]=0;
    priority_queue<pair<int,int>> pq;

    for (int i=0;i<s.size();i++){
        if (s[i]=='d'){
            if (pq.empty()==0){
                tab[pq.top().second]=0;
                pq.pop();
            }
        } else{
            tab[i]=1;
            pq.push({(s[i]-'a'),i});
        }
    }

    for (int i=0;i<s.size();i++){
        if (tab[i]==1 and s[i]!='d') cout<<s[i];
    }
}
Kabelki
Treść Omówienie
Kod C++
Kod Python
Kod C++
#include <bits/stdc++.h>
using namespace std;

int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    int N;
    cin>>N;
    vector<pair<int,int>> pary;
    for (int i=0;i<N*2;i++){
        int A,B;
        cin>>A>>B;
        pary.push_back({A,B});
    }
    sort(pary.begin(),pary.end());
    for (int i=0;i<N*2;i+=2){
        cout<<pary[i].first<<" "<<pary[i].second<<" "<<pary[i+1].first<<" "<<pary[i+1].second<<"\n";
    }
}

Kod Python
N=int(input())
pary=[]
for _ in range(N*2):
    A,B=map(int,input().split())
    pary.append((A, B))
pary.sort()

for i in range(0,N*2,2):
    p1=pary[i]
    p2=pary[i+1]
    print(p1[0],p1[1],p2[0],p2[1])
Kwadrat Magiczny
Treść Omówienie
Kod C++
Kod Python
Kod C++
#include<bits/stdc++.h>
using namespace std;
int main(){
    ios_base::sync_with_stdio(0);cin.tie(0);
    string aa[5];
    for(int i=0;i<5;++i){ cin>>aa[i];
    }
    for(int i=0;i<5;++i){
        for(int j=0;j<5;++j){
            if(aa[i][j] == '?' && aa[j][i] == '?') {
                aa[i][j] ='A';
            }
            else if(aa[i][j] == '?') {
                aa[i][j] = aa[j][i]; continue;
            }
            if(aa[j][i] != '?' && aa[i][j] != aa[j][i]){
                cout<<"NIE"; 
                return 0; // lub exit(0);
            }
        }
    }
    for(int i=0;i<5;++i){
        cout<<aa[i]<<"\n";
    }
}
Kod Python
def kwadratmagiczny():
  aa = []
  for i in range(5):
     a = input(); aa.append(a)
  for i in range (5):
    for j in range (5):
      if(aa[i][j] == '?' and aa[j][i] == '?'):
        aa[i][j] = 'A'
      elif(aa[i][j] == '?'):
        aa[i][j] = aa[j][i]
      if(aa[i][j] != aa[j][i] && aa[j][i] != '?'):
        print("NIE"); return
  for a in aa:
    print(a)
kwadratmagiczny()
Parzysta suma
Treść Omówienie
Kod C++
Kod Python
Kod C++
#include <bits/stdc++.h>
using namespace std;

int main() {
 int a, b, c;
 int reszta_a, reszta_b, reszta_c;
 cin >> a >> b >> c;
 reszta_a = a%2; reszta_b = b%2; reszta_c = c%2;
 cout << "TAK" << '\n';
 if ( reszta_a == reszta_b ) {
     cout << a << ' ' << b << '\n';
     return 0;
 }
 if ( reszta_a == reszta_c ) {
     cout << a << ' ' << c << '\n';
     return 0;
 }
 cout << b << ' ' << c << '\n';
 return 0;
}
Kod Python
def main():
   a, b, c = map(int, input().split())
   
   reszta_a = a%2
   reszta_b = b%2
   reszta_c = c%2

   print("TAK")
   if reszta_a == reszta_b:
      print(a, b)
      return

   if reszta_a == reszta_c:
      print(a, c)
      return

   print(b, c)
   return
main()
Równoległobok
Treść Omówienie
Kod C++
Kod Python
Kod C++
#include <bits/stdc++.h>
using namespace std;
int main(){
    ios_base::sync_with_stdio(0);cin.tie(0);
    int ile_dol, ile_bok;
    cin>>ile_dol>>ile_bok;
    for(int i = 0; i < ile_dol; ++i){
        for(int k = 0; k < i; ++k){
            cout<<" ";
        }
        for(int k = 0; k < ile_bok; ++k){
            cout<<"*";
        }
        cout<<'\n';
    }
}
Kod Python
def main():
  ile_dol = int(input())
  ile_bok = int(intput())
  for i in range (ile_dol):
    print(' ' * i + '*' * ile_bok)
main()
Daty zajęć
Najbliższe zajęcia
30 Stycznia 2026

Godzina: 19:00

Temat: Omówienie Testu

Przejdź do zajęć