cses

cses solutions in pure c
git clone git://git.superpozycja.net/cses
log | files | refs

s.c (742B)


      1 #include <stdio.h>
      2 #include <stdlib.h>
      3 #include <string.h>
      4 #include <stdint.h>
      5 
      6 int solve()
      7 {
      8 	long long lsum = 0, rsum = 0;
      9 	int *lset, *rset;
     10 	int li = 0, ri = 0;
     11 	int n;
     12 
     13 	scanf("%d", &n);
     14 
     15 	lset = malloc (sizeof(int) * n);
     16 	rset = malloc (sizeof(int) * n);
     17 
     18 	if (n % 4 == 1 || n % 4 == 2) {
     19 		printf("NO\n");
     20 		return 0;
     21 	}
     22 
     23 	printf("YES\n");
     24 
     25 	for (int i = n; i > 0; i--) {
     26 		if (lsum <= rsum) {
     27 			lset[li++] = i;
     28 			lsum += i;
     29 		}
     30 
     31 		else {
     32 			rset[ri++] = i;
     33 			rsum += i;
     34 		}
     35 	}
     36 
     37 	printf("%d\n", li);
     38 	for (int i = 0; i < li; i++)
     39 		printf("%d ", lset[i]);
     40 
     41 	printf("\n");
     42 
     43 	printf("%d\n", ri);
     44 	for (int i = 0; i < ri; i++)
     45 		printf("%d ", rset[i]);
     46 
     47 	printf("\n");
     48 
     49 	return 0;
     50 }
     51 
     52 int main()
     53 {
     54 	int t = 1;
     55 	while (t--)
     56 		solve();
     57 }