alpsahin/tubitak-olimpiyat-dataset-v2 huggingface dataset:
Bilgisayar Olimpiyatı 2024, 1. Aşama, Soru 44

[36-50 soruları için açıklama]
- Soruları C programlama dili çerçevesinde cevaplayınız.
- Derleyici olarak gcc kullanıldığını varsayınız.
- Gerekli tüm başlık (header) dosyalarının verilen programa dahil edildiğini varsayınız.

---

Aşağıda verilen kodun sağda verilen çıktıyı üretmesi için ________ olan yere ne gelmelidir?
```c
void metot(int W, int H)
{
for (int y=0; y<H; y++) {
for (int x=0; x<W; x++) {
int bayrak = min(max((_______, 0), 1));
printf("%d", bayrak);
}
printf("\n");
}
}
```

Çıktı
0000000000
1010101010
0000000000
1010101010
0000000000
1010101010
0000000000
1010101010

Şıklar:
A) (x % 2) - (y % 2) | B) (y % 2) - (x % 2) | C) abs((y % 2) - (x % 2)) | D) (x % 2) - ((y + 1) % 2) | E) (y % 2) - ((x + 1) % 2)

Cevap: B (y % 2) - (x % 2)

Çözüm:
Verilen kodda x ve y değişkenleri sıfırdan başlamaktadır. Burada her bir şık için tüm çıktıya kontrol etmek yerine seçilmiş 4-5 adet x ve y değeri için bakmak yeterli olacaktır (örneğin y=0, x=0 ve 1 için, y=1, x=0 ve 1 ile başlanarak). Bu şekilde şıklar elenerek hızlıca doğru şık olan B şıkkına erişilebilir.
Bilgisayar Olimpiyatı 2024, 1. Aşama, Soru 45

[36-50 soruları için açıklama]
- Soruları C programlama dili çerçevesinde cevaplayınız.
- Derleyici olarak gcc kullanıldığını varsayınız.
- Gerekli tüm başlık (header) dosyalarının verilen programa dahil edildiğini varsayınız.

---

Aşağıdaki programın ekrana yazdığı çıktısı tanımlı a disizi için nedir?
```c
const int n = 10;
int a[] = {0, 35, 1, 35, 35, 3, 2, 3, 5, 35};
int m = 0;
double s = 0;
for (int i=0; i<n; i++) {
m = max(m, a[i]);
s += exp(a[i]);
}
printf("%d \n", (int)(exp(log(s) - m)));
```

Şıklar:
A) 0 | B) 1 | C) 2 | D) 3 | E) 4

Cevap: E 4

Çözüm:
m = max(a_i) ve s = Σ e_i^a = Σ e_i^a + ke^m

Yukardaki iki ifadede m dizideki en büyük sayıyı (m = 35) ve k ise bu en büyük sayının kaç defa mevcut olduğunu (k= 4) ifade eder. Ardından döngünün tamamlanması sonuc s ile ifade edilen toplamın logaritmasını alırsak: log log (s) = log(Σ e_i^a + ke^m) ifadesini elde ederiz. m sayısı diğer sayılardan
büyük olduğu için \(\sum_{i \in a_i \neq m} e_i^a\) ifadesi \(ke^m\) yanında çok küçük kalır. Dolayısı ile \(\sum_{i \in a_i \neq m} e_i^a\) ifadesini ihmal edebiliriz. Böylece \(\log \log (s) \approx \log \log (ke^m) = \log \log (k) + m\) ifadesini elde ederiz. Bu ifadeyi de biraz düzenleyerek \(\log \log (k) = \log \log (s) - m\) ifadesini elde ederiz. Her iki tarafın exp'ini alırsak:
\[e^{\log(k)} = e^{\log(s) - m}\] ifadesine, yani \(k = e^{\log(s) - m}\) ifadesine ulaşmış oluruz. Bu durumda verilen kod ekrana \(k\) değerini yani dizideki en büyük sayının kaç defa tekrar ettiğini (bu dizide 35 sayısı 4 defa vardır) yazdırır.
Bilgisayar Olimpiyatı 2024, 1. Aşama, Soru 46

[36-50 soruları için açıklama]
- Soruları C programlama dili çerçevesinde cevaplayınız.
- Derleyici olarak gcc kullanıldığını varsayınız.
- Gerekli tüm başlık (header) dosyalarının verilen programa dahil edildiğini varsayınız.

---

Aşağıdaki fonksiyon metot(10); ile çağırılırsa şıklardan hangisinin ekranda çıkması en az olasıdır?
```c
int metot(int n)
{
printf("%d ", n);
if (n > 0) {
n = n % (rand() % n + 1);
method(n);
}
}
```

Şıklar:
A) 10 4 0 | B) 10 3 1 0 | C) 10 2 0 | D) 10 1 0 | E) 10 0

Cevap: B 10 3 1 0

Çözüm:
Yineleme 0 ile n-1 arasındaki bir rastgele sayı ile yapıldığı için n sayısı her defasında giderek küçülmektedir dolayısıyla küçük sayıların (en çok 0 olmak üzere) yineleme içinde seçilme olasılığı da giderek artmaktadır. Böylece mod operasyonu sonucu metot'a parametre olarak gidecek sayı (yani n) giderek küçülmekte ve yinelemenin tekrarlanma ihtimali giderek azalmaktadır. Bundan dolayı en kısa yineleme adedi olan 10 0 en çok oluşma ihtimali olan ve en çok yineleme adedi olan 10 3 1 0 ise en az oluşma ihtimali olan çıktıdır. Yani
Bilgisayar Olimpiyatı 2024, 1. Aşama, Soru 48

[36-50 soruları için açıklama]
- Soruları C programlama dili çerçevesinde cevaplayınız.
- Derleyici olarak gcc kullanıldığını varsayınız.
- Gerekli tüm başlık (header) dosyalarının verilen programa dahil edildiğini varsayınız.

---

Aşağıdaki programın doğru ve en etkin şekilde çalışabilmesi için \(v_1\), \(v_2\), \(v_3\), \(v_4\), \(v_5\), \(v_6\) ve \(v_7\) tamsayı değerleri ne olmalıdır?
```c
bool asalmi(int n)
{
if (n >= v_1 && n <= v_2 && n != v_3) {
return true;
}
if (n <= 1 || n % v_4 == 0 || n % v_5 == 0 || n % v_6 == 0) {
return false;
}
const int e = (int)sqrt(n);
for (int k=v_7; k<=e; k+=2) {
if (n % k == 0) {
return false;
}
}
return true;
}
```

Şıklar:
A) \(v_1 = 2\), \(v_2 = 5\), \(v_3 = 4\), \(v_4 = 2\), \(v_5 = 3\), \(v_6 = 5\), \(v_7 = 7\) | B) \(v_1 = 2\), \(v_2 = 7\), \(v_3 = 4\), \(v_4 = 2\), \(v_{5} = 3\), \(v_6 = 5\), \(v_7 = 7\) | C) \(v_1 = 2\), \(v_2 = 5\), \(v_{3} = 1\), \(v_4 = 2\), \(v_5 = 3\), \(v_{6} = 5\), \(v_7 = 7\) | D) \(v_1 = 2\), \(v_2 = 5\), \(v^{3} = 1\), \(v_4 = 2\), \(v^{5} = 3\), \(v^{6} = 7\), \(v^{7} = 9\) | E) \(v_1 = 2\), \(v_2 = 7\), \(v^{3} = 4\), \(v^{4} = 2\), \(v^{5} = 3\), \(v^{6} =7\), \(v^{7} = 9\)

Cevap: A \(v_1 = 2\), \(v_2 = 5\), \(v_3 = 4\), \(v_4 = 2\), \(v_5 = 3\), \(v_6 = 5\), \(v_7 = 7\)

Çözüm:
İlk üç asal sayı olan 2, 3, 5 ilk if koşulunda kontrol edilmekte ve asal olarak belirlenmektedir (2 ile 5 arasında olan fakat 4 olmayan). İkinci if satırında ise 5'ten büyük sayılar için 2, 3 ve 5 e bölünen sayılar asal değil olarak belirlenmektedir. Ardından for-döngüsü ile verilen n sayısı 7 ile \(\sqrt{n}\) arasındaki (7, 9, ...) tek sayılara tam bölünüyor mu diye bakılır ve eğer tam bölünüyor ise n sayısı asal değil olarak belirlenir. Eğer n sayısı döngü boyunca hiçbir sayıya tam bölünmez ise asal olarak belirlenir. Yani
Bilgisayar Olimpiyatı 2024, 1. Aşama, Soru 49

[36-50 soruları için açıklama]
- Soruları C programlama dili çerçevesinde cevaplayınız.
- Derleyici olarak gcc kullanıldığını varsayınız.
- Gerekli tüm başlık (header) dosyalarının verilen programa dahil edildiğini varsayınız.

---

Aşağıdaki kod çalıştıktan sonra dizinin son elemanı ile sondan bir önceki elemanın farkı nedir?
```c
#define N 8
int arr[N] = {1, 3, 50, 12, 5, 30, 8};
for (int i=0; i<N-1; i++) {
if (arr[i] > arr[i+1]) {
int temp = arr[i];
arr[i] = arr[i+1];
arr[i+1] = temp;
}
}
```

Şıklar:
A) 22 | B) 25 | C) 42 | D) 49 | E) 50

Cevap: E 50

Çözüm:
Dizi 8 elemanlı tanımlanmış fakat ilk 7 elemana değer atanmıştır. Son elemanın değeri 0 olarak atanır. Yukardaki kod çalıştırılınca dizinin içi [1, 3, 12, 5, 30, 8, 0, 50] haline gelir. Son eleman 50 ile bir önceki eleman 0'ın farkı 50 olur.
Bilgisayar Olimpiyatı 2024, 1. Aşama, Soru 50

[36-50 soruları için açıklama]
- Soruları C programlama dili çerçevesinde cevaplayınız.
- Derleyici olarak gcc kullanıldığını varsayınız.
- Gerekli tüm başlık (header) dosyalarının verilen programa dahil edildiğini varsayınız.

---

XOR (özel veya) operatörü ^ ile temsil edilmektedir ve 0 ^ 0 = 1 ^ 1 = 0 ve 0 ^ 1 = 1 ^ 0 = 1 doğruluk tablosuna sahiptir. Eğer iki tamsayı XOR işlemine tabi tutulursa tüm bitler XOR işlemine tabi tutulur. Örneğin x=3 ve y=2 iken x ^ y = 11 ^ 10 = 01 yani 1 olur, x=3 ve y=1 iken x ^ y = 11 ^ 01 = 10 yani 2 olur. a ve b tamsayıları için aşağıdaki 3 işlem hangi sırada yapılırsa a ve b sayılarının değerleri değişmiş olur. AND (ve) operatörü ise 1 & 1 = 1 ve diğer tüm durumlarda 0 üretir.
I. \(a = a \land b\);
II. \(b = a \land b\);
III. \(a = a \land b\);

Şıklar:
A) I, II, III | B) I, II, I | C) III, II, I | D) III, I, II | E) I, III, I

Cevap: B I, II

Çözüm:
I. ile a ve b'nin XOR'u alınır ve sonuç a'ya atanır. Bu işlem, a'nın artık a ve b'nin birleşik bilgisini taşıdığı anlamına gelir. II. ile, a (şimdi a ^ b) ile b XOR yapılarak sonuç b'ye atanır. Bu, orijinal a değerinin b'ye atanması anlamına gelir. I. ile, yeni a değeri (şu anda a ^ b) ile yeni b değeri (şimdi orijinal a değeri) XOR yapılarak sonuç a'ya atanır. Bu, a'nın orijinal b değerini alması anlamına gelir.
Bilgisayar Olimpiyatı 2025, 1. Aşama, Soru 1

[Soru 1-3 için açıklama]
Farklı renklere sahip \( n \) adet zarınız var. Zarlarınız her bir yüzünde 1, 2, 3, 4, 5 ve 6
sayılarından birinin yer aldığı klasik altı yüzlü zarlardır. Size bir \( m \) tamsayısı veriliyor. \( n \)
adet zarı attığınızda gelen \( n \) sayının toplamının \( m \) olmasının kaç farklı şekilde
gerçekleşebileceğini hesaplamak istiyorsunuz.

Örnek: \( n = 2 \) adet zarınız varsa, toplamda \( m = 3 \) sayısını elde etmenin tam olarak iki farklı
yolu vardır: zarların \( (1, 2) \) veya \( (2, 1) \) olarak gelmesi. Zarların farklı renklerde olduğuna ve bu
nedenle bu iki durumun birbirinden farklı olduğuna dikkat ediniz.

---

n=3 adet zarınız olsun. m=6 sayısını kaç farklı şekilde elde edebilirsiniz?

Şıklar:
A) 7 | B) 8 | C) 9 | D) 10 | E) 11

Cevap: D 10

Çözüm:
Bu soru bütün durumlar sayılarak çözülebilir. Olası bütün durumlar:
(1, 1, 4), (1, 2, 3), (1, 3, 2), (1, 4, 1), (2, 1, 3), (2, 2, 2), (2, 3, 1), (3, 1, 2), (3, 2, 1) ve (4, 1, 1)'dir.
m = 6 sayısının toplam 10 şekilde elde edilebileceği görülmektedir.
Bilgisayar Olimpiyatı 2025, 1. Aşama, Soru 2

[Soru 1-3 için açıklama]
Farklı renklere sahip \( n \) adet zarınız var. Zarlarınız her bir yüzünde 1, 2, 3, 4, 5 ve 6
sayılarından birinin yer aldığı klasik altı yüzlü zarlardır. Size bir \( m \) tamsayısı veriliyor. \( n \)
adet zarı attığınızda gelen \( n \) sayının toplamının \( m \) olmasının kaç farklı şekilde
gerçekleşebileceğini hesaplamak istiyorsunuz.

Örnek: \( n = 2 \) adet zarınız varsa, toplamda \( m = 3 \) sayısını elde etmenin tam olarak iki farklı
yolu vardır: zarların \( (1, 2) \) veya \( (2, 1) \) olarak gelmesi. Zarların farklı renklerde olduğuna ve bu
nedenle bu iki durumun birbirinden farklı olduğuna dikkat ediniz.

---

n=4 adet zarınız olsun. m=10 sayısını kaç farklı şekilde elde edebilirsiniz?

Şıklar:
A) 43 | B) 56 | C) 68 | D) 74 | E) 80

Cevap: E 80

Çözüm:
Bu soru dinamik programlama kullanılarak çözülebilir. Say(n, m) fonksiyonu n adet zar kullanılarak m sayısının kaç farklı şekilde elde edilebileceğini göstersin.
n = 1 ve 1≤m≤6 olması durumunda Say(n, m) = 1'dir çünkü tek zar var ve bu zarın m gelmesi gerekmektedir.
n = 1 ve (m≤0v ≥7) olması durumunda Say(n, m) = 0'dir çünkü tek zar var ve bu zarın m gelmesi mümkün değildir.
Akı sı taktirde Say(n, m) = \(\sum_{t=1}^{6} Say(n - 1, m - t)\)'dir. Dikkat edilirse bu özyineleme ifade
1≤t≤6 olmak üzere her t için son zarın t geldiği ve diğer zarların toplamının m - t olduğu bütün durumların toplamını hesaplamaktadır.
Bu özyinelemeli ifade kullanılarak 1≤n≤4 ve 1≤m≤10 için Say(n, m) değerleri hesaplandığında aşağıdaki M matrisindeki gibi olur.
\[M = (1\ 1\ 1\ 1\ 1\ 1\ 0\ 0\ 0\ 0\ 1\ 2\ 3\ 4\ 5\ 6\ 5\ 4\ 3\ 0\ 0\ 1\ 3\ 6\ 10\ 15\ 21\ 25\ 27\ 0\ 0\ 0\ 1\ 4\ 10\ 20\ 35\ 56\ 80)\]
Bilgisayar Olimpiyatı 2025, 1. Aşama, Soru 3

[Soru 1-3 için açıklama]
Farklı renklere sahip \( n \) adet zarınız var. Zarlarınız her bir yüzünde 1, 2, 3, 4, 5 ve 6
sayılarından birinin yer aldığı klasik altı yüzlü zarlardır. Size bir \( m \) tamsayısı veriliyor. \( n \)
adet zarı attığınızda gelen \( n \) sayının toplamının \( m \) olmasının kaç farklı şekilde
gerçekleşebileceğini hesaplamak istiyorsunuz.

Örnek: \( n = 2 \) adet zarınız varsa, toplamda \( m = 3 \) sayısını elde etmenin tam olarak iki farklı
yolu vardır: zarların \( (1, 2) \) veya \( (2, 1) \) olarak gelmesi. Zarların farklı renklerde olduğuna ve bu
nedenle bu iki durumun birbirinden farklı olduğuna dikkat ediniz.

---

n=20 adet zarınız olsun. m=25 sayısını kaç farklı şekilde elde edebilirsiniz?

Şıklar:
A) 8855 | B) 26334 | C) 42504 | D) 53130 | E) 74596

Cevap: C 42504

Çözüm:
Bu soruyu bir önceki sorunun çözümünde verilen özyinelemeli ifade kullanılarak çözmek mümkün olsa bile çok fazla zaman alacaktır. Bu yüzden farklı bir çözüm gerekmektedir.
20 zarın herbiri en az 1değerini alacaktır. Bu yüzden bizim yapmamız gereken kalan 5'i bu 20 zara kaç şekilde dağıtabileceğimizi bulmaktır. Bu problem 5 özdeş nesneyi ayırt edilebilir 20 kutuya yerleştirme problemidir ve çözümü  \( \left(\frac{5+20-1}{5}\right)=\left(\frac{24}{5}\right)=42504 \)  tür.
Bilgisayar Olimpiyatı 2025, 1. Aşama, Soru 4

ARIBURNU kelimesindeki harfleri yer değiştirerek anlamlı ya da anlamsız 8 harfli kaç kelime oluşturulabilir?

Şıklar:
A) 2520 | B) 5040 | C) 10080 | D) 20160 | E) 40320

Cevap: C 10080

Çözüm:
8 harf toplam 8! şekilde sıralanabilir. ARIBURNU kelimesinde U ve R harfleri ikişer defa geçmektedir. Bu harfler cevap  \( \frac{8!}{2!2!} = 10080' \) dir.
Bilgisayar Olimpiyatı 2025, 1. Aşama, Soru 5

ARIBURNU kelimesindeki harfleri yer değiştirerek oluşturulabilecek anlamlı ya da anlamsız 8 harfli kelimelerden bir sözlük oluşturuyorsunuz. Bu sözlükteki 1261. kelimenin ikinci harfi nedir? (Sözlükte yer alan tüm kelimeler alfabetik sıradadır.)

Şıklar:
A) A | B) B | C) N | D) R | E) U

Cevap: A A

Çözüm:
Sözlükte en başka A harfi ile başlayan kelimeler yer alacaktır. Başa A harfini yerleştirirsek geri kalan 7 harften toplam  \( \frac{7!}{2!2!} = 1260 \)  kelime oluşturulabilir. Sıradaki kelime BAINRRUU'dur.
Bilgisayar Olimpiyatı 2025, 1. Aşama, Soru 6

Camelot Krallığı’nda Arthur, Benedict, Caius, Dorian, Edric ve Fergus isimli 6 seçkin şövalye kralın düzenlediği yıllık onur töreninde 60 derece aralıklarla yuvarlak bir masaya oturacaktır. 
Ancak şövalyelerin oturma düzeni aşağıdaki 2 geleneksel kurala uymalıdır: 
 Arthur’un yanına Benedict veya Caius oturamaz.
 Dorian ile Edric tam karşılıklı oturmalıdır.
Yuvarlak masa düzeninde dönüşümlü olarak aynı olan oturma şekilleri aynı kabul edilir. Kurallara uygun olacak şekilde şövalyeler masaya kaç farklı şekilde oturabilirler?

Şıklar:
A) 6 | B) 8 | C) 10 | D) 12 | E) 14

Cevap: B 8

Çözüm:
Yuvarlak masa etrafında dönüşlü simetri olduğu için bir kişiyi (örneğin Arthur'u) sabitleyebiliriz. Arthur’un soluna gelecek kişi 3 kişiden biri olabilir: Dorian, Edric, Fergus. Her bir durumu ayrı ayrı analiz edebiliriz.
 Arthur’un soluna Dorian otursun: Kurallara göre Edric, Dorian’ın tam karşısında oturur, Fergus da Arthur’un sağında yer alır. Kalan 2 sandalyeye Benedict ve Caius 2 şekilde oturabilir.
 Arthur’un soluna Edric otursun: Kurallara göre Dorian, Edric’ın tam karşısında oturur, Fergus da Arthur’un sağında yer alır. Kalan 2 sandalyeye Benedict ve Caius 2 şekilde oturabilir.
 Arthur’un soluna Fergus otursun: Arthur’un sağına Dorian oturursa Edric de Dorian’ın karşısına oturur. Kalan 2 sandalyeye Benedict ve Caius 2 şekilde oturabili. Arthur’un sağına Edric oturursa Dorian da Edric’in karşısına oturur. Kalan 2 sandalyeye Benedict ve Caiu 2 şekilde oturabili.
Yukarıdaki analizden görüleceği üzere süvariler masaya toplam 8 farklı şekilde oturabilirler.
Bilgisayar Olimpiyatı 2025, 1. Aşama, Soru 7

Bir ailenin \(n\) tane çocuğu var. Anne ve baba, bayram sürprizi olarak her çocuğa bir hediye almış ve hediyeleri bayramda vermek üzere bir dolaba saklamış. Yaramaz çocuklar, bayramdan önce dolaptaki hediyeleri bulmuş ve her biri sırayla rastgele bir hediye seçip sahiplenmiş. Hiçbir çocuk, anne ve babasının kendisi için aldığı hediyeyi sahiplenmemiş. Bu durumun gerçekleşme olasılığı 3/8 olduğuna göre, ailenin kaç çocuğu vardır?

Şıklar:
A) 3 | B) 4 | C) 5 | D) 6 | E) 7

Cevap: B 4

Çözüm:
Bize \(n\) tane birbirinden farklı nesne sıralı bir şekilde verilmiş olsun. Hiçbir nesnenin orijinal konumunda kalmadığı permütasyona verilen sıralı listenin bir düzensizliği denir. \(n\) elemanlı bir kümenin düzensizlik sayısı \(D(n) = n! \left(1 - \frac{1}{1!} + \frac{1}{2!} - \frac{1}{3!} + \dots + (-1)^n \frac{1}{n!}\right)\) eşitliğine göre hesaplanabilir. Bu soruda bizden \(\frac{D(n)}{n!} = \frac{3}{8}\) eşitliğinin sağlanması için \(n\)'nin alması gereken değer sorulmaktadır. \(D(4) = 4! \left(1 - 1 + \frac{1}{2} - \frac{1}{6} + \frac{1}{24}\right) = 4! \times \frac{3}{8}\) olduğu için doğru cevap 4'tür.
Bilgisayar Olimpiyatı 2025, 1. Aşama, Soru 8

Bir mühendis, değişik ömürlere sahip pilleri kullanarak bir cihazı mümkün olduğunca çok çalıştırmak istiyor. Cihaz sadece iki pil birlikte takıldığında çalışabiliyor ve her çalışmada cihaz, o iki pilin minimum ömrü kadar çalışıyor. Her çalıştırmada kullanılan iki pil tamamen tükeniyor.
T = [10, 2, 9, 4, 7, 6, 7, 1, 5, 8, 4, 9, 6] dizisi pil ömürlerini saat cinsinden vermektedir. Mühendis cihazı toplamda en fazla kaç saat çalıştırabilir?

Şıklar:
A) 36 | B) 37 | C) 38 | D) 39 | E) 40

Cevap: A 36

Çözüm:
Bu sorunun optimal çözümü için uzun ömürlü pilleri birbiriyle kısa ömürlü pilleri de kendi aralarında eşleştirmek gerekir. Bu yüzden ilk olarak T dizisini büyükten küçüğe sıralayacağız. T dizisinin sıralı hali şu şekildedir.  \( T = [10, 9, 8, 7, 7, 6, 6, 5, 4, 4, 2, 1] \) .
İlk 2 pil 9 saat, sonraki 2 pil 8 saat, sonraki 2 pil 7 saat, sonraki 2 pil 6 saat, sonraki 2 pil 4 saat, sonraki 2 pil ise 2 saat boyunca cihazı çalıştırır. Sorunun cevabı  \( 9 + 8 + 7 + 6 + 4 + 2 = 36 \)  eder.
Bilgisayar Olimpiyatı 2025, 1. Aşama, Soru 9

[Soru 9-11 için açıklama]
Bir lisede TÜBİTAK araştırma projeleri kapsamında  öğrenci danışman öğretmenlerinin 8
yönlendirmesiyle  ayrı gruba ayrılacaktır. Her öğrenci yalnızca bir gruba katılabilir ve hiçbir 3
grup boş kalmamalıdır. Grupların isimlerinin ve öğrencilerin sıralamalarının bir önemi yoktur, 
yalnızca hangi öğrencilerin birlikte aynı grupta yer aldığını dikkate alıyoruz. 

---

Bu 8 öğrenci kaç farklı şekilde 3 gruba ayrılabilir?

Şıklar:
A) 301 | B) 420 | C) 560 | D) 966 | E) 1094

Cevap: D 966

Çözüm:
Stirling sayılarının ikinci türü \(S(n, k)\), \(n\) elemanlı bir kümenin \(k\) tane boş olmayan, sırasız alt kümeye bölünme sayısını verir. Hesaplama aşağıdaki özyinelemeli ifade kullanılarak yapılabilir.
- \(S(0, 0) = 1\)
- \(n > 0\) için \(S(n, 0) = 0\)
- \(k > 0\) için \(S(0, k) = 0\)
- Diğer durumlar için \(S(n, k) = k \times S(n-1, k) + S(n-1, k-1)\) özyinelemesine göre yapılabilir.
Bu formülün neden doğru olduğunu anlamak için \(n\) elemanlı bir kümede son elemanı ele alalım. Bu eleman 2 farklı şekilde yerleştirilebilir:
1. Bu eleman mevcut \(k\) gruptan birine konur. Bu durumda geriye kalan \(n-1\) eleman zaten \(k\) gruba ayrılmıştır. Bu yerleştirme sayısı \(S(n-1, k)\) ile gösterilmektedir. Eleman \(k\) gruptan herhangi birine yerleştirilebileceği için bu yerleştirme \(k \times S(n-1, k)\) şekilde yapılabilir.
2. Bu eleman tek başına bir grup oluşturur. Bunun olması için önceki \(n-1\) elemanın \(k-1\) gruba ayrılmış olması gerekmektedir. Bu da \(S(n-1, k-1)\) şekilde yapılabilir.
Yukarıda verilen özyineleme kullanılarak \(0 \le n \le 7\) ve \(0 \le k \le 3\) için \(S(n, k)\) değerleri hesaplandığında aşağıdaki \(M\) matrisi elde edilir.
\[M = (1\ 0\ 0\ 0\ 1\ 0\ 0\ 0\ 1\ 1\ 0\ 0\ 1\ 3\ 1\ 0\ 1\ 7\ 6\ 0\ 1\ 15\ 25\ 0\ 1\ 31\ 90\ 0\ 1\ 63\ 301\ 0\ 1\ 127\ 966)\]
Bilgisayar Olimpiyatı 2025, 1. Aşama, Soru 10

[Soru 9-11 için açıklama]
Bir lisede TÜBİTAK araştırma projeleri kapsamında  öğrenci danışman öğretmenlerinin 8
yönlendirmesiyle  ayrı gruba ayrılacaktır. Her öğrenci yalnızca bir gruba katılabilir ve hiçbir 3
grup boş kalmamalıdır. Grupların isimlerinin ve öğrencilerin sıralamalarının bir önemi yoktur, 
yalnızca hangi öğrencilerin birlikte aynı grupta yer aldığını dikkate alıyoruz. 

---

Araştırma projesi yapacak öğrencilerden Asu ve Ulus arasında tartışma çıkmış ve aynı grupta yer almak istemiyorlar. Asu ve Ulus farklı gruplarda olacak şekilde bu 8 öğrenci kaç farklı şekilde 3 gruba ayrılabilir?

Şıklar:
A) 280 | B) 483 | C) 547 | D) 665 | E) 720

Cevap: D 665

Çözüm:
Bir önceki sorunun çözümünden bu 8 öğrencinin 966 şekilde 3 gruba ayrılabildiğini biliyoruz. İlk olarak bu 966 gruplamadan kaç tanesinde Asu ve Ulus’un aynı grupta yer aldığını bulalım. Bunun için Asu ve Ulus’u tek bir kişi olarak düşünüp 7 öğrencinin kaç farklı şekilde 3 gruba ayrılabileceğini bulabiliriz. Bir önceki sorunun çözümünden bunun S(7, 3) = 301 olduğunu biliyoruz. 966 gruplamanın 301 tanesinde Asu ve Ulus aynı grupta olduğuna göre 966 – 301 = 665 tanesinde farklı grupta olurlar.
Bilgisayar Olimpiyatı 2025, 1. Aşama, Soru 11

[Soru 9-11 için açıklama]
Bir lisede TÜBİTAK araştırma projeleri kapsamında  öğrenci danışman öğretmenlerinin 8
yönlendirmesiyle  ayrı gruba ayrılacaktır. Her öğrenci yalnızca bir gruba katılabilir ve hiçbir 3
grup boş kalmamalıdır. Grupların isimlerinin ve öğrencilerin sıralamalarının bir önemi yoktur, 
yalnızca hangi öğrencilerin birlikte aynı grupta yer aldığını dikkate alıyoruz. 

---

Asu ve Ulus barışmışlar ve çok iyi iki arkadaş olmuşlar. Öğretmenlerine mutlaka aynı grupta yer almak istediklerini söylemişler. Ancak bu sefer de Canan ve Deniz arasında tartışma çıkmış ve kesinlikle aynı grupta yer almak istemiyorlarmış. Asu ve Ulus’un aynı grupta, Canan ve Deniz’in ise farklı grupta yer almaları şartlarını sağlayacak şekilde bu 8 öğrenciyi kaç farklı şekilde 3 gruba ayırabiliriz?

Şıklar:
A) 90 | B) 118 | C) 147 | D) 185 | E) 211

Cevap: E 211

Çözüm:
Bir önceki sorunun çözümünde bu 8 öğrencinin Asu ve Ulus aynı grupta yer alacak şekilde S(7, 3) = 301 şekilde 3 gruba ayrılabildiğini biliyoruz. İlk olarak bu 301 gruplamadan kaç tanesinde Canan ve Deniz’in aynı grupta yer aldığını bulalım. Bunun için Asu ve Ulus’u tek bir kişi olarak düşündüğümüz gibi Canan ve Deniz’i de tek bir kişi gibi düşünüp 6 öğrencinin kaç farklı şekilde 3 gruba ayrılabileceğini bulabiliriz. İki önceki sorunun çözümünde oluşturduğumuz M matrisinden bunun S(6, 3) = 90 olduğunu biliyoruz. Asu ve Ulus’un aynı grupta yer aldığı 301 gruplamanın 90 tanesinde Canan ve Deniz aynı grupta olduğuna göre 301 – 90 = 211 tanesinde farklı grupta olurlar.
Bilgisayar Olimpiyatı 2025, 1. Aşama, Soru 12

[Soru 12-13 için açıklama]
Bir dağ yolunda, \( n \) tane manzara noktası yol boyunca sıralı bir şekilde bulunuyor. Her bir manzara noktasında, \( i \) numaralı noktada çekilen fotoğrafın güzellik değeri \( T[i] \) olarak veriliyor ve \( T[i] \) pozitif bir tam sayıdır. Ancak, sınırlı zamanınız olduğu için yan yana iki manzara noktasında durarak fotoğraf çekemezsiniz. Amacınız, seçtiğiniz manzara noktalarından çekilen fotoğrafların toplam güzellik değerini mümkün olduğunca büyük yapmaktır.

\textbf{Örnek:} Eğer \( T = [10, 5, 15, 25, 3, 8] \) olsaydı, maksimum toplam güzellik değeri \( 10 + 25 + 8 = 43 \) olurdu.

---

\(T = [12, 18, 7, 35, 4, 20, 28, 9, 14, 22]\) için maksimum toplam güzellik değeri ne olur?

Şıklar:
A) 101 | B) 104 | C) 107 | D) 109 | E) 112

Cevap: B 104

Çözüm:
Bu problem dinamik programlama ile çözülebilir. Bir DP dizisi tanımlayalım: \(DP[i]\), ilk *i* manzara noktasına kadar (*i* dahil) elde edilebilecek maksimum güzellik değerini temsil eder. Her *i* noktada aşağıdaki iki seçeneğin olduğuna dikkat ediniz:
- *i*. noktayı seç: Bu durumda (*i* - 1). noktayı seçemeyiz, bu yüzden maksimum güzellik değeri \(T[i] + DP[i - 2]\)'dir.
- *i*. noktayı seçme: Bu durumda maksimum güzellik değeri \(DP[i - 1]\)'dir.
Bu yüzden DP dizisinin elemanlarını aşağıdaki özyinelemeli ifadeye göre hesaplayabiliriz.
\[
\begin{align*}
DP[0] &= T[0], \\
DP[1] &= \max(T[0], T[1]), \\
\text{ve} & \quad i \ge 2 \quad \text{için} \\
DP[i] &= \max(DP[i - 1], T[i] + DP[i - 2]).
\end{align*}
\]
Soruda verilen *T* dizisi için DP dizisi: \(DP = [12, 18, 19, 53, 53, 73, 81, 82, 95, 104]\) olur. Bu yüzden doğru cevap 104 olur.
Bilgisayar Olimpiyatı 2025, 1. Aşama, Soru 13

[Soru 12-13 için açıklama]
Bir dağ yolunda, \( n \) tane manzara noktası yol boyunca sıralı bir şekilde bulunuyor. Her bir manzara noktasında, \( i \) numaralı noktada çekilen fotoğrafın güzellik değeri \( T[i] \) olarak veriliyor ve \( T[i] \) pozitif bir tam sayıdır. Ancak, sınırlı zamanınız olduğu için yan yana iki manzara noktasında durarak fotoğraf çekemezsiniz. Amacınız, seçtiğiniz manzara noktalarından çekilen fotoğrafların toplam güzellik değerini mümkün olduğunca büyük yapmaktır.

\textbf{Örnek:} Eğer \( T = [10, 5, 15, 25, 3, 8] \) olsaydı, maksimum toplam güzellik değeri \( 10 + 25 + 8 = 43 \) olurdu.

---

T = [15, 30, 10, 45, 20, 35, 25, 50, 5, 40, 15, 60, 30, 10, 55, 20, 25, 5, 15, 5] için maksimum toplam güzellik değeri ne olur?

Şıklar:
A) 345 | B) 350 | C) 355 | D) 360 | E) 365

Cevap: C 355

Çözüm:
Bu problemin çözümü bir önceki soruşunun çözüm kısmında detaylıca açıklanmıştı. Soruda verilen T dizisi için DP dizisi aşağıdadır.
DP = [15, 30, 30, 75, 75, 110, 110, 160, 160, 200, 200, 260, 260, 270, 315, 315, 340, 340, 355
Bu yüzden doğru cevap 355 olur.