about summary refs log tree commit diff
path: root/others/easy20160714/16.c
diff options
context:
space:
mode:
Diffstat (limited to 'others/easy20160714/16.c')
-rw-r--r--others/easy20160714/16.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/others/easy20160714/16.c b/others/easy20160714/16.c
new file mode 100644
index 0000000..33334cd
--- /dev/null
+++ b/others/easy20160714/16.c
@@ -0,0 +1,28 @@
+#define _GNU_SOURCE
+#include <stdio.h>
+#include <string.h>
+
+int main()
+{
+	FILE *fi = fopen("INP.TXT", "r"), *fo = fopen("OUT.TXT", "w");
+	unsigned char n, i, j, s[256], sx[256], x, y;
+
+	fscanf(fi, "%s %hhd\n", s, &n);
+
+	for (i = 0; i < n; i++)
+		if (fgetc(fi) ^ 49) {
+			fscanf(fi, " %hhd %hhd\n", &x, &y);
+			x--;
+			memmove(s + x, s + x + y, strlen(s) - x - y + 1);
+			fprintf(fo, "%s\n", s);
+		} else {
+			fscanf(fi, " %s %hhd\n", sx, &y);
+			strcpy(sx + strlen(sx), s + y);
+			strcpy(s + y, sx);
+			fprintf(fo, "%s\n", s);
+		}
+
+	fcloseall();
+
+	return 0;
+}