Submission #369280

# Submission time Handle Problem Language Result Execution time Memory
369280 2021-02-21T06:21:51 Z notrichardpeng A Huge Tower (CEOI10_tower) C++11
100 / 100
138 ms 9912 KB
#include <bits/stdc++.h>
using namespace std;
 
#define ll long long
#define pi pair<int, int>
#define endl '\n'
 
void setIO(string name = "") { 
    ios_base::sync_with_stdio(0); 
	cin.tie(0);     
    if (name.length()) {
        freopen((name+".in").c_str(), "r", stdin); 
        freopen((name+".out").c_str(), "w", stdout);
    }
}

int n, d;
vector<int> A;
const int MOD = 1e9 + 9;

int main(){			 
    setIO("");
    cin >> n >> d;
    for(int i = 0; i < n; i++){
        int a; cin >> a;
        A.push_back(a);
    }

    sort(A.begin(), A.end());
    int res = 1, r = 0;
    for(int l = 0; l < n; l++){
        while(r < n-1 && A[r+1] - A[l] <= d) r++;
        int dist = r-l+1;
        res = (res * 1LL * dist) % MOD;
    }

    cout << res << endl;


    return 0;
}

Compilation message

tower.cpp: In function 'void setIO(std::string)':
tower.cpp:12:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result]
   12 |         freopen((name+".in").c_str(), "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tower.cpp:13:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result]
   13 |         freopen((name+".out").c_str(), "w", stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 396 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 3 ms 492 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 15 ms 1260 KB Output is correct
2 Correct 11 ms 1260 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 58 ms 3944 KB Output is correct
2 Correct 54 ms 4072 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 122 ms 9912 KB Output is correct
2 Correct 138 ms 9444 KB Output is correct