Submission #82653

# Submission time Handle Problem Language Result Execution time Memory
82653 2018-11-01T08:39:08 Z farukkastamonuda Taxis (POI13_tak) C++14
100 / 100
199 ms 12368 KB
#include <bits/stdc++.h>
#define fi first
#define se second
#define lo long long 
#define inf 1000000009
#define md 1000000007
#define li 500005
#define mp make_pair
#define pb push_back
using namespace std;
int n,tut=1,kullan[li];
lo int m,d,A[li],sum;
void fail(){
	printf("0\n");
	exit(0);
}
int main(){
	scanf("%lld %lld %d",&m,&d,&n);
	sum=d;
	for(int i=1;i<=n;i++) scanf("%lld",&A[i]);
	sum=d;
	sort(A+1,A+n+1,greater<lo int>());
	if(A[1]<m-d) fail();
	for(int i=2;i<=n;i++){
		if(A[i]>=m-d){
			tut=i;
		}
		else break;
	}
	for(int i=1;i<=tut-1;i++) kullan[i]=1;
	for(int i=1;i<=n;i++){
		if(i==tut) continue;
		if(kullan[i]==1){
			if(A[i]<=sum) fail();
			A[i]-=sum;
			lo int hop=sum;
			sum-=A[i];
			if(sum<=0){
				if(A[i]>=hop+m-d)
					printf("%d\n",i);
				else
					printf("%d\n",i+1);
				return 0;
			}
		}
		else{
			if(A[i]<=sum){
				if(A[tut]<=sum) fail();
				A[tut]-=sum;
				lo int gg=sum;
				if(A[tut]>=gg+m-d){
					printf("%d\n",i-1);
					return 0;
				}
				fail();
			}
			A[i]-=sum;
			sum-=A[i];
			if(sum<=0){
				printf("%d\n",i);
				return 0;
			}
		}
	}
	A[tut]-=sum;
	lo int gg=sum;
	sum-=A[tut];
	if(sum>0) fail();
	if(A[tut]>=m-d+gg){
		printf("%d\n",n);
		return 0;
	}
	fail();
	return 0;
}

Compilation message

tak.cpp: In function 'int main()':
tak.cpp:18:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%lld %lld %d",&m,&d,&n);
  ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
tak.cpp:20:29: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  for(int i=1;i<=n;i++) scanf("%lld",&A[i]);
                        ~~~~~^~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 2 ms 508 KB Output is correct
3 Correct 2 ms 508 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 508 KB Output is correct
2 Correct 2 ms 508 KB Output is correct
3 Correct 2 ms 508 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 508 KB Output is correct
2 Correct 2 ms 508 KB Output is correct
3 Correct 3 ms 508 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 4 ms 508 KB Output is correct
2 Correct 3 ms 688 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 16 ms 1020 KB Output is correct
2 Correct 6 ms 1020 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 23 ms 1180 KB Output is correct
2 Correct 23 ms 1180 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 65 ms 1976 KB Output is correct
2 Correct 72 ms 2396 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 109 ms 4192 KB Output is correct
2 Correct 120 ms 9156 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 199 ms 10460 KB Output is correct
2 Correct 153 ms 10460 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 126 ms 12368 KB Output is correct
2 Correct 177 ms 12368 KB Output is correct