Hdu 1518 Square
SquareTime Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission (s): 8260 Accepted Submission (s): 2687
Problem DescriptionGiven a set of sticks of various lengths, is it possible to join them end-to-end to form a square?
InputThe first line of input contains N, the number of test cases. each test case begins with an integer 4 <= M <= 20, the number of sticks. M integers follow; each gives the length of a stick-an integer between 1 and 10,000.
OutputFor each case, output a line containing "yes" if is possible to form a square; otherwise output "no ".
Sample Input
34 1 1 1 15 10 20 30 40 508 1 7 2 6 4 4 3 5
Sample Output
yesnoyes
# Include
# Include
# Define deusing namespace std; # define M 25int a [M], vis [M]; int n, m, sum; bool cmp (int x, int y) {return (x> y);} int dfs (int ans, int cur, int num) // ans indicates the current position. cur indicates the current weight. num indicates the number of edges {int I; if (num = 4) return 1; for (I = ans; I
> T; while (t --) {cin> n; sum = 0; for (I = 0; I
> A [I]; sum + = a [I];} if (sum % 4! = 0) printf ("no \ n"); else {m = sum/4; // side length sort (a, a + n, cmp); if (m