Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Split Candies
- sid@whackylabs.com
- */
- #include<stdio.h>
- #define DEBUG 0
- #define N_MAX 1000
- long is_equal(int c[], int n, int pvt)
- {
- int patrick = 0;
- int sean = 0;
- long sean_share = 0;
- int i;
- for(i = 0; i < n; i++)
- {
- if(i < pvt)
- patrick ^= c[i];
- else
- {
- sean ^= c[i];
- sean_share += c[i];
- }
- }
- if(DEBUG) printf("pat: %d, sean: %d\n",patrick, sean);
- if(patrick == sean)
- return sean_share;
- return 0;
- }
- int main(int argc, char **argv)
- {
- int t, n;
- int c[N_MAX];
- int case_no, candy;
- int i,j, k;
- long sharing_point = 0;
- scanf("%d",&t);
- for(case_no = 0; case_no < t;case_no++)
- {
- scanf("%d",&n);
- for(candy = 0; candy < n; candy++)
- scanf("%d",&c[candy]);
- //sort descending
- for(i = 0; i < n; i++)
- {
- for(j = i+1, k = i; j < n; j++)
- {
- if(c[j] < c[k])
- k = j;
- }
- if(i != k)
- {
- j = c[i];
- c[i] = c[k];
- c[k] = j;
- }
- }
- if(DEBUG)
- {
- for(i = 0; i < n; i++)
- printf("%d ",c[i]);
- printf("\n");
- }
- for(i = 1; i < n; i++)
- {
- //patrick share
- //sean share
- if(sharing_point = is_equal(c, n, i))
- break;
- }
- if(sharing_point)
- printf("Case #%d: %ld\n",case_no+1,sharing_point);
- else
- printf("Case #%d: NO\n",case_no+1);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement