Блог пользователя ajitkumar014

Автор ajitkumar014, история, 10 месяцев назад, По-английски

it the solution of https://mirror.codeforces.com/problemset/problem/1549/B

#include <bits/stdc++.h>
using namespace std;
using ull = unsigned long long;
using uli = unsigned long int;
using ll = long long;
#define pb push_back
int n;
int mod = 1e9 + 7;
#define yes cout << "YES" << endl
#define no cout << "NO" << endl

void solve()
{
    cin >> n;
    int v[2][n];
    for (int i = 0; i < 2; i++)
    {
        for (int j = 0; j < n; j++)
        {
            cin >> v[i][j];
        }
    }
    int ans = 0;
    vector<bool> check(n, false);
    for (int i = 0; i < n; i++)
    {
        if (v[1][i] == 1)
        {
            if (v[0][i] == 0 && check[i] == false)
            {
                ans++;
                check[i] = true;
            }
            if (i - 1 >= 0)
            {
                if (v[0][i - 1] == 1 && check[i - 1] == false)
                {
                    ans++;
                    check[i - 1] = true;
                }
            }
            if (i + 1 < n)
            {
                if (v[0][i + 1] == 1 && check[i + 1] == false)
                {
                    ans++;
                    check[i + 1] = true;
                }
            }
        }
    }
    cout << ans << endl;
    return;
}

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    int t;
    cin >> t;
    while (t--)
    {
        solve();
    }
    return 0;
}

Полный текст и комментарии »

  • Проголосовать: нравится
  • 0
  • Проголосовать: не нравится

Автор ajitkumar014, история, 10 месяцев назад, По-английски

please someone give some suggestions it will be very helpful.

Полный текст и комментарии »

  • Проголосовать: нравится
  • -3
  • Проголосовать: не нравится

Автор ajitkumar014, история, 10 месяцев назад, По-английски

can anyone suggest some problems on segment trees (beginner to advanced). Thank you.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +2
  • Проголосовать: не нравится

Автор ajitkumar014, история, 11 месяцев назад, По-английски

unable to understand why if(last*2 < g) is done,please someone explain. Thankyou.

include "bits/stdc++.h"

using namespace std;

int main() { int t; scanf ("%d", &t); while (t--) { long long n, k, g; scanf ("%lld %lld %lld", &n, &k, &g);

    long long stolen = min((g - 1) / 2 * n, k * g);
    long long rest = (k * g - stolen) % g;

    if (rest > 0) {
        stolen -= (g - 1) / 2;
        long long last = ((g - 1) / 2 + rest) % g;

        if (last * 2 < g) {
            stolen += last;
        } else {
            stolen -= g - last;
        }
    }

    printf ("%lld\n", stolen);
}

}

Полный текст и комментарии »

  • Проголосовать: нравится
  • +5
  • Проголосовать: не нравится