Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- void swap(long long *a, long long *b){
- long long t=*a;
- *a=*b;
- *b=t;
- }
- long long Partition(long long arr[], long long start, long long end){
- long long pivot=arr[end];
- long long pIndex=start;
- for(long long i=start; i<end; i++){
- if(arr[i]>=pivot){
- swap(&arr[i], &arr[pIndex]);
- pIndex++;
- }
- }
- swap(&arr[end], &arr[pIndex]);
- return pIndex;
- }
- void QuickSort(long long arr[], long long start, long long end){
- if(start<end){
- long long pIndex=Partition(arr, start, end);
- QuickSort(arr, pIndex+1, end);
- QuickSort(arr, start, pIndex-1);
- }
- }
- void Print(long long arr[], long long max){
- for(long long i=0; i<max; i++){
- printf("%lld ", arr[i]);
- }
- printf("\n");
- }
- int main(){
- long long N;
- scanf("%lld", &N);
- long long num[10001];
- long long odd[10001];
- long long even[10001];
- long long j=0, k=0;
- for(long long i=0; i<N; i++){
- scanf("%lld", &num[i]);
- if(num[i]%2==0){
- even[j]=num[i];
- j++;
- }
- else if(num[i]%2!=0){
- odd[k]=num[i];
- k++;
- }
- }
- QuickSort(even,0, j-1);
- QuickSort(odd,0, k-1);
- long long Q;
- scanf("%lld", &Q);
- long long M, oddcount, evencount;
- for(long long i=0; i<Q; i++){
- oddcount=0, evencount=0;
- scanf("%lld", &M);
- long long sum=0;
- for(long long a=0; a<k-1; a++){
- for(long long b=a+1; b<k; b++){
- sum=odd[a]+odd[b];
- if(sum>=M){
- oddcount++;
- }
- else break;
- }
- }
- for(long long a=0; a<j-1; a++){
- for(long long b=a+1; b<j; b++){
- sum=even[a]+even[b];
- if(sum>=M){
- evencount++;
- }
- else break;
- }
- }
- printf("Case #%lld: %lld %lld\n", i+1, oddcount, evencount);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement