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/
Runda szkolna
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
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
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];
}
}
Runda zdalna
Kabelki
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
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
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
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()
Część testowa