답안 #284775

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
284775 2020-08-28T02:47:22 Z ChrisT Worst Reporter 3 (JOI18_worst_reporter3) C++17
100 / 100
870 ms 29432 KB
#include <bits/stdc++.h>
using namespace std;
const int MN = 5e5 + 5;
long long speed[MN], d[MN];
int main () {
	int n,q;
	scanf ("%d %d",&n,&q);
	for (int i = 1; i <= n; i++) scanf ("%lld",&d[i]);
	speed[0] = d[0] = 1;
	for (int i = 1; i <= n; i++) {
		speed[i] = speed[i-1] * ((d[i] + d[i-1] - 1) / d[i-1]);
		d[i] = d[i-1] * speed[i] / speed[i-1];
	}
	auto bs = [&] (int t, int x) { //at time t, what is first one <= x
		int low = 0, high = n, mid, ans = n+1;
		while (low <= high) {
			mid = (low + high) / 2;
			long long pos = -mid + t / speed[mid] * d[mid];
			if (pos <= x) high = (ans = mid) - 1;
			else low = mid + 1;
		}
		return ans;
	}; 
	while (q--) {
		int t,l,r;
		scanf ("%d %d %d",&t,&l,&r);
		printf ("%d\n",bs(t,l-1)-bs(t,r));
	} 
	return 0;
}

Compilation message

worst_reporter3.cpp: In function 'int main()':
worst_reporter3.cpp:7:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
    7 |  scanf ("%d %d",&n,&q);
      |  ~~~~~~^~~~~~~~~~~~~~~
worst_reporter3.cpp:8:37: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
    8 |  for (int i = 1; i <= n; i++) scanf ("%lld",&d[i]);
      |                               ~~~~~~^~~~~~~~~~~~~~
worst_reporter3.cpp:26:9: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   26 |   scanf ("%d %d %d",&t,&l,&r);
      |   ~~~~~~^~~~~~~~~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 853 ms 26872 KB Output is correct
2 Correct 860 ms 26744 KB Output is correct
3 Correct 864 ms 26700 KB Output is correct
4 Correct 843 ms 26616 KB Output is correct
5 Correct 870 ms 26844 KB Output is correct
6 Correct 840 ms 26872 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 384 KB Output is correct
2 Correct 1 ms 384 KB Output is correct
3 Correct 1 ms 384 KB Output is correct
4 Correct 1 ms 384 KB Output is correct
5 Correct 1 ms 384 KB Output is correct
6 Correct 1 ms 384 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 853 ms 26872 KB Output is correct
2 Correct 860 ms 26744 KB Output is correct
3 Correct 864 ms 26700 KB Output is correct
4 Correct 843 ms 26616 KB Output is correct
5 Correct 870 ms 26844 KB Output is correct
6 Correct 840 ms 26872 KB Output is correct
7 Correct 1 ms 384 KB Output is correct
8 Correct 1 ms 384 KB Output is correct
9 Correct 1 ms 384 KB Output is correct
10 Correct 1 ms 384 KB Output is correct
11 Correct 1 ms 384 KB Output is correct
12 Correct 1 ms 384 KB Output is correct
13 Correct 491 ms 25272 KB Output is correct
14 Correct 499 ms 25980 KB Output is correct
15 Correct 484 ms 24440 KB Output is correct
16 Correct 477 ms 24952 KB Output is correct
17 Correct 585 ms 29176 KB Output is correct
18 Correct 598 ms 29432 KB Output is correct
19 Correct 596 ms 29432 KB Output is correct
20 Correct 588 ms 29268 KB Output is correct
21 Correct 590 ms 29180 KB Output is correct
22 Correct 597 ms 29304 KB Output is correct
23 Correct 584 ms 29432 KB Output is correct
24 Correct 601 ms 29304 KB Output is correct
25 Correct 850 ms 26744 KB Output is correct
26 Correct 856 ms 26624 KB Output is correct
27 Correct 657 ms 28856 KB Output is correct
28 Correct 638 ms 29176 KB Output is correct
29 Correct 647 ms 28680 KB Output is correct
30 Correct 682 ms 28920 KB Output is correct
31 Correct 684 ms 29048 KB Output is correct
32 Correct 611 ms 25336 KB Output is correct
33 Correct 1 ms 384 KB Output is correct