Submission #28970

# Submission time Handle Problem Language Result Execution time Memory
28970 2017-07-18T02:23:38 Z khsoo01 Taxis (POI13_tak) C++11
100 / 100
213 ms 5924 KB
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll N = 500005;

ll m, d, n, a[N];

int main()
{
	scanf("%lld%lld%lld",&m,&d,&n);
	for(ll i=1;i<=n;i++) {
		scanf("%lld",&a[i]);
	}
	sort(a+1, a+1+n);
	ll C = 0, V = 0, X = 0;
	for(ll i=n;i>=1;i--) {
		if(a[i] - abs(d-C) > 0) {
			C += a[i] - abs(d-C);
			V++;
		}
		if(C >= m) {
			printf("%lld\n", V);
			return 0;
		}
	}
	C = 0; V = 0;
	bool flag = false;
	for(ll i=0;i<=n;i++) {
		if(a[i] >= m-d) {
			X = a[i]; a[i] = 0;
			if(!i) V--;
			flag = true; break;
		}
	}
	if(!flag) {puts("0"); return 0;}
	for(ll i=n;C<d && i>=1;i--) {
		if(a[i] - abs(d-C) > 0) {
			C += a[i] - abs(d-C);
			V++;
		}
		if(C + max(0ll, X-abs(d-C)) >= m) {
			printf("%lld\n", V+1);
			return 0;
		}
	}
	puts("0");
}

Compilation message

tak.cpp: In function 'int main()':
tak.cpp:10:32: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%lld%lld%lld",&m,&d,&n);
                                ^
tak.cpp:12:22: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%lld",&a[i]);
                      ^
# Verdict Execution time Memory Grader output
1 Correct 0 ms 5924 KB Output is correct
2 Correct 0 ms 5924 KB Output is correct
3 Correct 0 ms 5924 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 5924 KB Output is correct
2 Correct 0 ms 5924 KB Output is correct
3 Correct 0 ms 5924 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 5924 KB Output is correct
2 Correct 0 ms 5924 KB Output is correct
3 Correct 0 ms 5924 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 5924 KB Output is correct
2 Correct 0 ms 5924 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 13 ms 5924 KB Output is correct
2 Correct 3 ms 5924 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 16 ms 5924 KB Output is correct
2 Correct 16 ms 5924 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 36 ms 5924 KB Output is correct
2 Correct 69 ms 5924 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 96 ms 5924 KB Output is correct
2 Correct 133 ms 5924 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 156 ms 5924 KB Output is correct
2 Correct 166 ms 5924 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 139 ms 5924 KB Output is correct
2 Correct 213 ms 5924 KB Output is correct