about summary refs log tree commit diff
path: root/others/easy20160714/15.c
diff options
context:
space:
mode:
authorRaphael McSinyx <vn.mcsinyx@gmail.com>2017-01-01 21:05:53 +0700
committerRaphael McSinyx <vn.mcsinyx@gmail.com>2017-01-01 21:15:44 +0700
commit7206ecee7579a10dd347d06b397b3790e969f8f3 (patch)
tree0b7218b75d8dae913fd91c695e105fc6f2256479 /others/easy20160714/15.c
parentc67182c04491f2cf8b67e78b68aebf32aea25470 (diff)
downloadcp-7206ecee7579a10dd347d06b397b3790e969f8f3.tar.gz
Add others/easy20160714
Diffstat (limited to 'others/easy20160714/15.c')
-rw-r--r--others/easy20160714/15.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/others/easy20160714/15.c b/others/easy20160714/15.c
new file mode 100644
index 0000000..fc9c8e4
--- /dev/null
+++ b/others/easy20160714/15.c
@@ -0,0 +1,32 @@
+#define _GNU_SOURCE
+#include <stdio.h>
+#include <stdlib.h>
+
+int main()
+{
+	FILE *fi = fopen("INP.TXT", "r"), *fo = fopen("OUT.TXT", "w");
+	int n, m, i, *a, *b, x, y;
+	char signal;
+
+	fscanf(fi, "%d %d", &n, &m);
+	a = malloc(n * sizeof(int));
+	b = malloc(n * sizeof(int));
+
+	for (i = 0; i < n; i++)
+		fscanf(fi, "%d %d", a + i, b + i);
+
+	for (i = 0; i < m; i++) {
+		fscanf(fi, "%hhd %d %d", &signal, &x, &y);
+		x--;
+
+		b[x] += (signal ^ 1) ? -y : y;
+		if (b[x] < a[x]) {
+			fprintf(fo, "BUY %d %d\n", x + 1, a[x] - b[x]);
+			b[x] = a[x];
+		}
+	}
+
+	fcloseall();
+
+	return 0;
+}