#include <stdio.h>
//f(int*x,int n){int t=0;for(int i=0;i<n;i++)t+=x[i];for(int k=1;k<n;k++)for(int i=0,s;i<n;i++){s=0;for(int j=i;j<i+k;j++)s+=x[j%n];if(2*s==t) return 1;}return 0;}
int f(int*x,int n)
{
int t=0;
for(int i=0;i<n;i++)
{
t += x[i];
}
for(int k=1;k<n;k++) // subset-size
{
for(int i=0,s;i<n;i++) // where to start
{
s=0;
for(int j=i;j<i+k;j++) // sum the subset
{
s+=x[j%n];
}
if(2*s==t) return 1;
}
}
return 0;
}
int main(void)
{
int test[] = { 6, 6, 12, 12, 12, 11, 1, 12 };
printf("%d", f
(test
, sizeof(test
)/sizeof(test
[0]))); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgovL2YoaW50KngsaW50IG4pe2ludCB0PTA7Zm9yKGludCBpPTA7aTxuO2krKyl0Kz14W2ldO2ZvcihpbnQgaz0xO2s8bjtrKyspZm9yKGludCBpPTAscztpPG47aSsrKXtzPTA7Zm9yKGludCBqPWk7ajxpK2s7aisrKXMrPXhbaiVuXTtpZigyKnM9PXQpIHJldHVybiAxO31yZXR1cm4gMDt9CgppbnQgZihpbnQqeCxpbnQgbikKewoJaW50IHQ9MDsKCQoJZm9yKGludCBpPTA7aTxuO2krKykKCXsKCQl0ICs9IHhbaV07Cgl9CgkKCWZvcihpbnQgaz0xO2s8bjtrKyspIC8vIHN1YnNldC1zaXplCgl7CgkJZm9yKGludCBpPTAscztpPG47aSsrKSAvLyB3aGVyZSB0byBzdGFydAoJCXsKCQkJcz0wOwoJCQkKCQkJZm9yKGludCBqPWk7ajxpK2s7aisrKSAvLyBzdW0gdGhlIHN1YnNldAoJCQl7CgkJCQlzKz14W2olbl07CgkJCX0KCQkJCgkJCWlmKDIqcz09dCkgcmV0dXJuIDE7CgkJfQoJfQoJCglyZXR1cm4gMDsKfQoKaW50IG1haW4odm9pZCkKewoJaW50IHRlc3RbXSA9IHsgNiwgNiwgMTIsIDEyLCAxMiwgMTEsIDEsIDEyIH07CglwcmludGYoIiVkIiwgZih0ZXN0LCBzaXplb2YodGVzdCkvc2l6ZW9mKHRlc3RbMF0pKSk7CglyZXR1cm4gMDsKfQo=