about summary refs log tree commit diff
path: root/others/easy20160714/16.c
diff options
context:
space:
mode:
authorRaphael McSinyx <vn.mcsinyx@gmail.com>2017-01-02 20:37:59 +0700
committerRaphael McSinyx <vn.mcsinyx@gmail.com>2017-01-02 20:37:59 +0700
commit57d767cf4e4d5b83645bda2c4e398fdd76d059e1 (patch)
tree557cc70d5dc663b5ee3bef2be4d749ddc3cfbc4c /others/easy20160714/16.c
parent7206ecee7579a10dd347d06b397b3790e969f8f3 (diff)
downloadcp-57d767cf4e4d5b83645bda2c4e398fdd76d059e1.tar.gz
Update others/easy20160714
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;
+}