You are on page 1of 8

// V

using System;
using System.Linq;

class Program {
static int ProveraBroja(ulong broj, bool[] dozvoljeneCifre) {
while (broj > 0) {
int poslednji = (int)broj % 10;
if (!dozvoljeneCifre[poslednji]) {
return 0;
}
broj /= 10;
}
return 1;
}

static void Main() {


var intervalIDelilac = Console.ReadLine().Split('
').Select(ulong.Parse).ToArray();
var dozvoljeneCifre = new bool[10];
foreach (var cifra in Console.ReadLine().Select(c => c - '0')) {
dozvoljeneCifre[cifra] = true;
}

var delilac = intervalIDelilac[0];


var prviBroj = intervalIDelilac[1];
var drugiBroj = intervalIDelilac[2];

var prviMnozilac = delilac * ((prviBroj + delilac - 1) / delilac);


var brojac = 0;

for (var i = prviMnozilac; i <= drugiBroj; i += delilac) {


brojac += ProveraBroja(i, dozvoljeneCifre);
}

Console.WriteLine(brojac);
Console.ReadLine();
}
}

// Maraton

using System;
using System.Collections.Generic;
using System.Linq;

class Program {
static char[,] tabla;

static char Pobednik(int dimenzija) {


var igraci = new HashSet<char>();
for (int i = 0; i < dimenzija; i++) {
for (int j = 0; j < dimenzija; j++) {
if (tabla[i, j] != '.') {
igraci.Add(tabla[i, j]);
}
}
}

var opsegOd1DoN = Enumerable.Range(0, dimenzija);

foreach (var igrac in igraci) {


for (int i = 0; i < dimenzija; i++) {
var red = opsegOd1DoN.All(j => tabla[i, j] == igrac);
if (red) return igrac;
}

for (int j = 0; j < dimenzija; j++) {


var kolona = opsegOd1DoN.All(i => tabla[i, j] == igrac);
if (kolona) return igrac;
}

var prvaDijagonala = opsegOd1DoN.All(i => tabla[i, i] == igrac);


if (prvaDijagonala) return igrac;

var drugaDijagonala = opsegOd1DoN.All(i => tabla[i, dimenzija - i - 1]


== igrac);
if (drugaDijagonala) return igrac;
}

return '.';
}

static void Main() {


var n = int.Parse(Console.ReadLine());
tabla = new char[n, n];

for (int i = 0; i < n; i++) {


var red = Console.ReadLine().ToCharArray();
for (int j = 0; j < n; j++) {
tabla[i, j] = red[j];
}
}

var pobednik = Pobednik(n);


Console.WriteLine(pobednik == '.' ? "jos traje" : pobednik);
Console.ReadLine();
}
}

// Magija

using System;

class Program {
static char InverzniKarakter(char c) {
return c == '#' ? '.' : '#';
}

static void PopunjavanjeKarte(char[,] karta, int[] dimenzijeKarte) {


for (int i = 0; i < dimenzijeKarte[0] / 2; i++) {
var red = Console.ReadLine();
for (int j = 0; j < dimenzijeKarte[1] / 2; j++) {
karta[i, j] = karta[dimenzijeKarte[0] - i - 1, j] =
karta[i, dimenzijeKarte[1] - j - 1] = karta[dimenzijeKarte[0] -
i
- 1, dimenzijeKarte[1] - j - 1] = red[j];
}
}
}

static void Ispis(int[] dimenzije, char[,] matrica) {


for(int i = 0; i < dimenzije[0]; i++) {
for(int j = 0; j < dimenzije[1]; j++) {
Console.Write(matrica[i, j]);
}
Console.WriteLine();
}
}

static void Main() {


var dimenzijeKarte = Array.ConvertAll(Console.ReadLine().Split(' '),
int.Parse);
dimenzijeKarte[0] *= 2; dimenzijeKarte[1] *= 2;
var karta = new char[dimenzijeKarte[0], dimenzijeKarte[1]];

PopunjavanjeKarte(karta, dimenzijeKarte);

var promena = Array.ConvertAll(Console.ReadLine().Split(' '), int.Parse);


karta[promena[0] - 1, promena[1] - 1] = InverzniKarakter(karta[promena[0] -
1, promena[1] - 1]);

Ispis(dimenzijeKarte, karta);
Console.ReadLine();
}
}

// Kamen

using System;

class Program {
static void Main() {
var red = Array.ConvertAll(Console.ReadLine().Split(' '), int.Parse);
var brojRedova = red[0];
var brojStupaca = red[1];

var polje = new char[brojRedova][];


for (int r = 0; r < brojRedova; ++r) {
polje[r] = Console.ReadLine().ToCharArray();
}

var putanje = new Putanja[brojStupaca];


for (int i = 0; i < brojStupaca; ++i) {
putanje[i] = new Putanja();
putanje[i].stupac[0] = i;
putanje[i].r = 1;
putanje[i].SrediPolje(polje, brojRedova, brojStupaca);
}

var brojPoteza = int.Parse(Console.ReadLine());


for (int i = 0; i < brojPoteza; ++i) {
int odabrani_stupac = int.Parse(Console.ReadLine()) - 1;
putanje[odabrani_stupac].UbaciKamen(polje);
for (int j = 0; j < brojStupaca; ++j) {
putanje[j].SrediPolje(polje, brojRedova, brojStupaca);
}
}

for (int r = 0; r < brojRedova; ++r) {


Console.WriteLine(polje[r]);
}

Console.ReadLine();
}
}

class Putanja {
public int r;
public int[] stupac = new int[30000];

public void UbaciKamen(char[][] polje) {


polje[r - 1][stupac[r - 1]] = 'O';
}

public void SrediPolje(char[][] polje, int brojRedova, int brojStupaca) {


for (; ; ) {
int s = stupac[r - 1];

if (r > 1 && polje[r - 1][s] != '.') {


--r;
continue;
}

if (r == brojRedova) break;
if (polje[r][s] == 'X') break;
if (polje[r][s] == '.') {
stupac[r++] = s;
}
else {
if (s > 0 && polje[r][s - 1] == '.' && polje[r - 1][s - 1] == '.')
{
stupac[r++] = s - 1;
}
else if (s + 1 < brojStupaca && polje[r][s + 1] == '.' && polje[r -
1][s + 1] == '.') {
stupac[r++] = s + 1;
}
else {
break;
}
}
}
}
}

// Divlja IVANA

using System;

class Program {
static void Main() {
var tabela = new int[200, 200];
var duzinaNiza = int.Parse(Console.ReadLine());
var brojevi = Array.ConvertAll(Console.ReadLine().Split(' '), int.Parse);

for (int i = 0; i < duzinaNiza; ++i) {


brojevi[i] %= 2;
tabela[i + duzinaNiza, i + duzinaNiza] = tabela[i, i] = brojevi[i];
}

for (int L = 2; L <= duzinaNiza; ++L)


for (int i = 0; i < 2 * duzinaNiza; ++i) {
int j = i + L - 1;
if (j >= 2 * duzinaNiza) break;

tabela[i, j] = Math.Max(tabela[i, i] - tabela[i + 1, j], tabela[j,


j] - tabela[i, j - 1]);
}

var brojNeparnihBrojeva = 0;
for (int i = 0; i < duzinaNiza; ++i)
if (tabela[i, i] - tabela[i + 1, i + duzinaNiza - 1] > 0)
++brojNeparnihBrojeva;

Console.WriteLine(brojNeparnihBrojeva);
Console.ReadLine();
}
}

// Liga

using System;
using System.Text;

class Program {
static int[] UcitajPodatke() {
return Array.ConvertAll(Console.ReadLine().Split(' '),
x => string.Equals(x, "?") ? -1 : int.Parse(x));
}

static void Main() {


var brojEkipa = int.Parse(Console.ReadLine());
var izlaz = new StringBuilder();

for (var i = 0; i < brojEkipa; ++i) {


int donjaGranicab, gornjaGranicab, donjaGranicac, gornjaGranicac;

var red = UcitajPodatke();


var brojUtakmica = red[0]; var brojPobeda = red[1];
var nereseneUtakmice = red[2];
var brojPoraza = red[3]; var brojBodova = red[4];

if (brojPobeda != -1) {
donjaGranicab = gornjaGranicab = brojPobeda;
}
else {
donjaGranicab = 0; gornjaGranicab = 100;
}

if (nereseneUtakmice != -1) {
donjaGranicac = gornjaGranicac = nereseneUtakmice;
}
else {
donjaGranicac = 0; gornjaGranicac = 100;
}

if (brojUtakmica == -1 && brojPoraza == -1) {


brojPoraza = 0;
}

for (brojPobeda = donjaGranicab; brojPobeda <= gornjaGranicab; +


+brojPobeda) {
for (nereseneUtakmice = donjaGranicac; nereseneUtakmice <=
gornjaGranicac; ++nereseneUtakmice) {
var noviBrojUtakmica = brojUtakmica;
var noviBrojPoraza = brojPoraza;
var noviBrojBodova = brojBodova;

if (brojUtakmica == -1) {
noviBrojUtakmica = brojPobeda + nereseneUtakmice +
brojPoraza;
}
else if (brojPoraza == -1) {
noviBrojPoraza = brojUtakmica - brojPobeda -
nereseneUtakmice;
}

if (brojBodova == -1) {
noviBrojBodova = 3 * brojPobeda + nereseneUtakmice;
}

if (noviBrojUtakmica == brojPobeda + nereseneUtakmice +


noviBrojPoraza &&
noviBrojUtakmica >= 0 && noviBrojUtakmica <= 100 &&
noviBrojPoraza >= 0 && noviBrojPoraza <= 100 &&
noviBrojBodova == 3 * brojPobeda + nereseneUtakmice) {
izlaz.AppendLine(string.Format("{0} {1} {2} {3} {4}",
noviBrojUtakmica, brojPobeda, nereseneUtakmice, noviBrojPoraza, noviBrojBodova));
}
}
}
}
Console.Write(izlaz);
Console.ReadLine();
}
}

// Tenis

using System;
using System.Text;

class Program {
// bool oznacava da li je mec valjan
static bool PobednikSeta(int a, int b, bool t, ref int pr, ref int dr) {
switch(a) {
case 8: if(t && b == 6) { pr++; return true; }
break;
case 7: if(!t && b == 6) { pr++; return true; }
break;
case 6: if(b <= 4) { pr++; return true; }
break;
default: if(b >= a + 2 && a < 6) { dr++; return true; }
break;
}

switch(b) {
case 8: if (t && a == 6) { dr++; return true; }
return false;
case 7:
if (!t && a == 6) { dr++; return true; }
return false;
case 6:
if (a <= 4) { dr++; return true; }
return false;
default:
if (a >= b + 2 && b < 6) { pr++; return true; }
return false;
}
}

static char[] odvajaci = ": ".ToCharArray();


const string specijalanIgrac = "federer";
const string valjan = "da";
const string nijeValjan = "ne";

static void Main() {


var igraci = Console.ReadLine().Split(' ');
var federerIgra = Array.IndexOf(igraci, specijalanIgrac);

var brojMeceva = int.Parse(Console.ReadLine());


var izlaz = new StringBuilder();

for(int i = 0; i < brojMeceva; i++) {


var podaciMeca = Array.ConvertAll(Console.ReadLine().Split(odvajaci),
int.Parse);
int pobedePrvog = 0, pobedeDrugog = 0;
for (int j = 0; j < podaciMeca.Length; j += 2) {
var prviIgrac = podaciMeca[j];
var drugiIgrac = podaciMeca[j + 1];

if (!PobednikSeta(prviIgrac, drugiIgrac, j == 4, ref pobedePrvog,


ref pobedeDrugog)) {
izlaz.AppendLine(nijeValjan);
continue;
}
}

if(Math.Abs(pobedeDrugog - pobedePrvog) <= 2) {


if(pobedeDrugog > pobedePrvog && federerIgra == 0
|| pobedePrvog > pobedeDrugog && federerIgra == 1) {
izlaz.AppendLine(nijeValjan);
}
else {
izlaz.AppendLine(valjan);
}
}
else {
izlaz.AppendLine(nijeValjan);
}
}

Console.Write(izlaz);
Console.ReadLine();
}
}

You might also like