Результати п"ятого туру Хмельницької заочної олімпіади з програмування

 

Код Учасник t5z1 t5z2 t5z3 sum Клас Школа Вчитель
1 USER_2123 Ярема Богдан Ростиславович 20 18 50 88 8 НВК "Антей" Савчук С.В.
2 USER_2158 Маршевський Вадим 20 30 28 78   Заміхівська ЗОШ  
3 USER_2049 Нагін Сергій 20 30 28 78   ЛІТ  
4 USER_0528 Сорока Дмитро Сергійович 20 24 28 72 8 Старокостянтинівська гімназія Вапнічний Сергій Дмитрович
5 USER_1351 Макаревич Андрій Олегович 20 24 24 68 11 ЗОШ №10 Паламар Ю. В.
6 USER_2054 Рубаненко Роман 20 30 12 62   ЛІТ  
7 USER_1882 Березін Дмитро Андрійович 20 24 17 61 9 НВК "Антей" Савчук С.В.
8 USER_1905 Руснак Ігор Олександрович 20 30 11 61 11 Кам'янець-Подільский ліцей Аносов Д.О.
9 USER_0045 Франчук Роман Павлович 20 30 10 60 9 Ямпільська ЗОШ І-ІІІ ступенів Франчук П.А.
10 USER_1943 Абушаєв Віктор Вікторович 20 24 11 55 8 ЗОШ №10 Паламар Ю. В.
11 USER_2047 Мостовий Андрій 20 30 N 50   ЛІТ  
12 USER_2048 Оришин Сергій 20 30 N 50   ЛІТ  
13 USER_1872 Кондаков Олександр Володимирович 20 24 6 50 9 Хмельницький колегiум Стукалова.I.В
14 USER_2055 Кушніренко Роман 20 30 N 50   ЛІТ  
15 USER_0595 Шевчук Олександр 20 24 4 48 8 Старокостянтинівська гімназія Шевчук Олег Васильович
16 USER_2109 Савчук Владислав Сергійович 20 24 N 44 8 НВК "Антей" Савчук С.В.
17 USER_1883 Шумейко Максим Володимирович 20 24 N 44 6 Старокостянтинівська гімназія Вапнічний Сергій Дмитрович
18 USER_2144 Задніпровський Вадим 16 18 9 43   м.Хмельницький  
19 USER_2092 Муравський Віктор Миколайович 18 24 N 42 11 Славутська ЗОШ І-ІІІ ст. №4 Самойлюк Олександр Григорович
20 USER_2156 Щербань Аліна 20 18 N 38   Новоушицький НВК  
21 USER_1993 Ліщук Ігор Володимирович 20 6 N 26 11 Старокостянтинівська ЗОШ І-ІІІ ступенів №7 Гриб Гаяне Анатоліївна
22 USER_1929 Франчук Руслан Павлович 20 N N 20 8 Ямпільська ЗОШ І-ІІІ ступенів Франчук П.А.
23 USER_2019 Кобюк Катерина N 18 N 18   Гаврилівська ЗОШ І-ІІІ ст. Пилипчук О.П.
24 USER_2100 Касьянов Андрій 7 N N 7   Деражнянський НВК №2  
25 USER_0049 Гусар Роман Володимирович N 6 N 6 11 Малиницький НВК Ребрина Віталій Арсенович
26 USER_0071 Лоран Сергій N 6 N 6   ЗОШ №2  
27 USER_0667 Старушок Назар Юрійович N 6 N 6 11 Вишнівчицька ЗОШ Старушок Лілія Іванівна

 

Зведена таблиця результатів

 

Результати тестів по задачі "T5Z1"

 

Результати тестів по задачі "T5Z2"

 

Результати тестів по задачі "T5Z3"

 

Легенда:
T - перевищений ліміт часу
W - помилка вводу-виводу, використання модуля Crt.
R - помилка виконання
N - відсутній розв'язок
P - штраф

Авторські розв"язки

T5Z1

	  { Free Pascal }
Program Interesting_numbers;
     Const  
         Size=80;
     Var 
         Mas: Array[1..Size] of 0..9;
         n: Byte;
	fi,fo : text;
    Procedure Run(n: Byte);
      Var j, i, ost, cifr: Byte;
       begin
        FillChar(Mas, SizeOf(Mas),0);
        i:=Size;
        ost:=0;
        Mas[i]:=n;
        {Write('N=',n,'  ');}
        Repeat
           cifr:=(Mas[i]*n+ost) mod 10;
           ost:=(Mas[i]*n+ost) div 10;
           dec(i);
           Mas[i]:=cifr;
        Until (Mas[i]=0) and (ost=1);
        dec(i);
        Mas[i]:=ost;
        for j:=i to size do Write(fo,Mas[j]);
        WriteLn(fo);
       end;
    Begin
      Assign(fi,'Interest.in');
      Reset(fi);
      Assign(fo,'interest.out');
      Rewrite(fo);
      Read(fi,n);
      Run(n);
      Close(fi);
      Close(fo)
    End.

	   

 

T5Z2

 

 
/* GCC */

//	Классное, правильное решение
#include <iostream>
#include <cstdio>
#include <sstream>
#include <vector>
#include <set>
#include <map>
#include <queue>
#include <algorithm>
#include <numeric>
#include <functional>
#include <string>
#include <cstdlib>
#include <cmath>
#include <list>

using namespace std;

#define FOR(i,a,b) for(int i=(a),_b(b);i<_b;++i)
#define FORD(i,a,b) for(int i=(a),_b(b);i>=_b;--i)
#define REP(i,n) FOR(i,0,n)
#define ALL(a) (a).begin(),a.end()
#define SORT(a) sort(ALL(a))
#define UNIQUE(a) SORT(a),(a).resize(unique(ALL(a))-a.begin())
#define SZ(a) ((int) a.size())
#define pb push_back

#define VAR(a,b) __typeof(b) a=(b)
#define FORE(it,a) for(VAR(it,(a).begin());it!=(a).end();it++)
#define X first
#define Y second
#define DEBUG(x) cout << #x << " = " << x << endl;

#define INF 1000000000

typedef vector<int> VI;
typedef vector< vector<int> > VVI;
typedef pair<int, int> PII;
typedef vector<PII> VPII;
typedef long long ll;

string square (long long n)
{
    long long x = n / 100000000;
    long long y = n % 100000000;
    
    long long r1, r2, r3;
    r3 = y * y;
    
    r2 = r3 / 100000000 + 2 * x * y;
    
    r1 = r2 / 100000000 + x * x;
    
    r3 %= 100000000;
    r2 %= 100000000;
    
    string s;
    ostringstream str;
    str.fill ('0');
    str.width (8);
    str << r1;
    str.width (8);
    str << r2;
    str.width (8);
    str << r3;
    
    s = str.str();
    while (s[0] == '0')
        s.erase (0, 1);
    return s;
}

bool is_less (string s1, string s2)
{
    int u = max (SZ (s1), SZ (s2));
    while (SZ (s1) != u)
        s1 = '0' + s1;
    while (SZ (s2) != u)
        s2 = '0' + s2;

    return s1 < s2;    
}

int main() {
	freopen("strange.in", "r", stdin);
    freopen("strange.out", "w", stdout);
    int n;
    cin >> n;
    int ans = 0;
    int res = 0;
    string s;
    REP (i, n)
    {
        cin >> s;
        
        long long b1 = 1;
        long long b2 = INF * 10LL;
        
        while (b1 < b2)
        {
            long long mid = (b1 + b2) / 2;
            
            string v = square (mid);
            
            if (is_less (v, s))
                b1 = mid+1;
            else
                b2 = mid;
        }
        
        string v = square (b1);
        if (v == s)
            ++res;            
    }    
    cout << res << endl;
	return 0;
}


 

T5Z3

 
	/* GCC */
#include <iostream>
#include <cstdio>
#include <sstream>
#include <vector>
#include <set>
#include <map>
#include <queue>
#include <algorithm>
#include <numeric>
#include <functional>
#include <string>
#include <cstdlib>
#include <cmath>
#include <list>


using namespace std;

#define FOR(i,a,b) for(int i=(a),_b(b);i<_b;++i)
#define FORD(i,a,b) for(int i=(a-1),_b(b);i>=_b;--i)
#define REP(i,n) FOR(i,0,n)
#define ALL(a) (a).begin(),a.end()
#define SORT(a) sort(ALL(a))
#define UNIQUE(a) SORT(a),(a).resize(unique(ALL(a))-a.begin())
#define SZ(a) ((int) a.size())
#define pb push_back

#define VAR(a,b) __typeof(b) a=(b)
#define FORE(it,a) for(VAR(it,(a).begin());it!=(a).end();it++)
#define X first
#define Y second

#define CHECK

#define INF 1000000000

template <class T> void vector2d(vector<vector<T> >& a, int n, int m, 
T val = T()) { a = vector<vector<T> > (n, vector<T> (m, val)); }

typedef vector<int> VI;
typedef vector<vector > VII;
typedef pair<int,int> PII;
typedef vector<PII> VPII;
typedef long long ll;

int a[300][101][101];

int main() {
	freopen ("travel.in", "r", stdin);
	freopen ("travel.out", "w", stdout);
    int n, m;
    cin >> n >> m;
    
#ifdef CHECK
    assert (n >= 1 && n <= 100);
    assert (m >= 1 && m <= 100);
#endif
    
    vector <string> b(n);
    REP (i, n) {
        cin >> b[i];
    }

#ifdef CHECK
    REP (i, n) {
    	assert (SZ (b[i]) == m);
    	REP (j, m)
    		assert (b[i][j] == '.' || b[i][j] == '*' || b[i][j] == '#');
    }
    assert (b[0][0] != '#');
    assert (b[n-1][m-1] != '#');
#endif
    
    memset (a, 0, sizeof (a));
    a[0][0][0] = 1;
    REP (i, n+m-1) {
        int lo = (i+1-m)>?0, hi = i <? (n-1);
        static int x1, x2, y3, x3, y4, x4;
        FOR (y1, lo, hi + 1) {
            x1 = i - y1;
            FOR (y2, lo, y1+1) if (a[i][y1][y2]) {
                x2 = i - y2;
                if (b[y1][x1] == '#' || b[y2][x2] == '#') {
                    a[i][y1][y2] = 0;
                    continue;
                }
                if (b[y1][x1] == '*') ++a[i][y1][y2];
                if (b[y2][x2] == '*' && (y1 != y2 || x1 != x2)) ++a[i][y1][y2];
                REP (v1, 2) REP (v2, 2) {
                    y3 = y1 + v1, y4 = y2 + v2;
                    x3 = x1 + 1-v1, x4 = x2 + 1-v2;
                    if (y3 >= n || x3 >= m || y4 >= n || x4 >= m)
                        continue;
                    if (y3 < y4) swap(y3, y4);
                    a[i+1][y3][y4] >?= a[i][y1][y2];
                }                    
            }
        }
    }
    cout << (a[n+m-2][n-1][n-1]-1) << endl;
	return 0;
}