Решение задачи Рамочки с Codeforces

Без пояснения   Просмотров: 309


В жизни Игоря К. было много заслуживающих внимания ситуаций. Мы помним историю с вирусом, историю его математической карьеры и, разумеется, его знаменитые программные разработки. Но не всегда увлечения появляются, иногда они и исчезают.

На сей раз Игорь К. разочаровался в еще одном своем увлечении: монтаже и озвучке видеороликов. Причем настолько, что захотел навсегда уничтожить свой секретный архив.

Код

// practice with Dukkha
#include <algorithm>
#include <iostream>

using namespace std;

int main() {
	int n, m, a, b; cin >> n >> m >> a >> b;
	if (b == n)
		b = n = (n + m - 1) / m * m;
	a--, b--;
	int ans;
	if (a / m == b / m || (b + 1) % m == 0 && a % m == 0)
		ans = 1;
	else if (b / m - a / m <= 1 || (b + 1) % m == 0 || a % m == 0 || (b - a + 1) % m == 0)
		ans = 2;
	else
		ans = 3;
	cout << ans << '\n';
	return 0;
}

         

Администратор Photo Автор: Администратор


Код

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    
    int n,m,a,b,ans=0;
    cin >> n >> m >> a >> b;
    int r1 = (a-1)/m;
    int r2 = (b-1)/m;
    int c1 = (a-1)%m;
    int c2 = (b-1)%m;

    if(a == 1 && b == n){
        ans = 1;
    }else if(r1 == r2){
        ans = 1;
    }else{
        if(c1 == 0 && c2 == m-1){
            ans = 1;
        }else if(c1 == 0 && b == n){
            ans = 1;
        }else{
            if(a == 1 || b == n){
                ans = 2;
            }else if(c1 == 0 || c2 == m-1){
                ans = 2;
            }else if(c2+1 == c1){
                ans = 2;
            }else{
                if(r1+1 == r2){
                    ans = 2;
                }else{
                    ans = 3;
                }
            }
        }
    }

    cout << ans << '\n';

    return 0;
}

         

Администратор Photo Автор: Администратор


Код

from sys import stdin, stdout
input = stdin.readline
n, m, a, b = map(int, input().split(' '))
a-=1; b-=1
x = a//m; y = b//m
xx = a%m; yy = b%m
if (x==y) or (xx==0 and yy==(m-1)) or (b-a+1 == n) or (xx==0 and b==n-1):
    print(1)
elif yy+1==xx or yy==m-1 or (x+1==y) or xx==0 or b==n-1:
    print(2)
else:
    print(3)

         

Kirill Photo Автор: Kirill




Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться