답안 #394115

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
394115 2021-04-25T15:54:56 Z jtt_ A Huge Tower (CEOI10_tower) C++17
100 / 100
145 ms 7508 KB
#include <bits/stdc++.h>
using namespace std;
using ll = long long;

#define ar array
#define vt vector

#define f first
#define s second
#define bk back()
#define ft front()

#define rsz resize
#define pb push_back
#define lb lower_bound
#define ub upper_bound

#define sz(x) (int)size(x)
#define all(x) begin(x), end(x)
#define rall(x) rbegin(x), rend(x)

#define FOR(i,a,b) for (int i = (a); i < (b); ++i)
#define F0R(i,b) FOR(i,0,b)
#define ROF(i,a,b) for (int i = (b)-1; i >= (a); --i)
#define R0F(i,b) ROF(i,0,b)
#define each(i,x) for (auto& i: x)

#define Ceil(x,y) ((x+y-1)/y)

#define M1(x) template<class T, class...U> void x(T&& a,U&&...b)
#define M2(x) (int[]) {(x forward<U>(b),0)...}
M1(pr) { cout << forward<T>(a); M2(cout << ' ' << ); cout << '\n'; }
M1(re) { cin >> forward<T>(a); M2(cin >> ); }
// 
void setIO(string S = "") {
	cin.tie(0)->sync_with_stdio(false);
	if (sz(S)) {
		freopen((S+".in").c_str(),"r",stdin);
		freopen((S+".out").c_str(),"w",stdout);
	}
}
// 
const int MOD = (int)1e9+9;
int N,D;

int main() {
	setIO(); re(N,D);
	vt<int> a(N); each(i,a) re(i);
	sort(all(a));
	ll ans = 1;
	int l = 0;
	F0R(r,N) {
		while (a[r]-a[l] > D) l ++;
		ans = (ll)ans*(r-l+1)%MOD;
	}
	// int r = N-1;
	// R0F(l,N) {
	// 	while (a[r]-a[l] > D) r --;
	// 	ans = ans*(r-l+1)%MOD;
	// }
	pr(ans);
}

Compilation message

tower.cpp: In function 'void setIO(std::string)':
tower.cpp:38:10: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result]
   38 |   freopen((S+".in").c_str(),"r",stdin);
      |   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tower.cpp:39:10: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result]
   39 |   freopen((S+".out").c_str(),"w",stdout);
      |   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 208 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 204 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 320 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 332 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 10 ms 460 KB Output is correct
2 Correct 14 ms 972 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 52 ms 1228 KB Output is correct
2 Correct 53 ms 3652 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 119 ms 2636 KB Output is correct
2 Correct 145 ms 7508 KB Output is correct