답안 #346550

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
346550 2021-01-10T07:49:42 Z Ca7Ac1 A Huge Tower (CEOI10_tower) C++17
0 / 100
3 ms 492 KB
#include <iostream>
#include <algorithm>
#include <vector>
#include <set>
#include <map>

#define ll signed long long

using namespace std;

const ll MOD = (ll)10e9 + 9;

bool cmpr(ll a, ll b)
{
    return a > b;
}

int main()
{
    cin.tie(0);
    cout.tie(0);
    ios_base::sync_with_stdio(0);
    freopen("tower.in", "r", stdin);

    ll N;
    ll D;
    cin >> N >> D;

    vector<ll> blocks(N, 0);
    for (ll i = 0; i < N; i++)
    {
        cin >> blocks[i];
    }

    sort(blocks.begin(), blocks.end(), cmpr);

    vector<ll> possible(N, 0);

    ll sum = 1;
    ll j = 0;
    for (ll i = 0; i < N; i++)
    {
        j = max(j, i);
        sum = 1;
        while (j < N - 1 && blocks[i] - blocks[j + 1] <= D)
        {
            j++;
            sum *= (j - i + 1) % MOD;
            sum %= MOD;
        }

        possible[i] = sum;
    }

    ll sol = possible[0];
    for (ll i = 1; i < N; i++)
    {
        if (blocks[i - 1] - blocks[i] <= D)
        {
            if (possible[i] != 1)
            {
                sol += possible[i];
            }
        }
        else
        {
            sol *= possible[i];
        }

        sol %= MOD;
    }

    cout << sol;
}

Compilation message

tower.cpp: In function 'int main()':
tower.cpp:23:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result]
   23 |     freopen("tower.in", "r", stdin);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 364 KB Output isn't correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 3 ms 364 KB Output isn't correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 364 KB Output isn't correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 364 KB Output isn't correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 3 ms 364 KB Output isn't correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 3 ms 364 KB Output isn't correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 3 ms 364 KB Output isn't correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 3 ms 364 KB Output isn't correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 364 KB Output isn't correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 364 KB Output isn't correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 364 KB Output isn't correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 3 ms 492 KB Output isn't correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 3 ms 364 KB Output isn't correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 3 ms 364 KB Output isn't correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 364 KB Output isn't correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 364 KB Output isn't correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 364 KB Output isn't correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 364 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 364 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 364 KB Output isn't correct
2 Halted 0 ms 0 KB -