Cod sursă (job #108712)

Utilizator avatar Pasarel Alex Oltean Pasarel IP ascuns
Problemă SCV (clasele 9-10) Compilator c | 1,14 kb
Rundă Arhiva de probleme Status evaluat
Dată 21 ian. 2015 20:18:09 Scor 100
#include <stdio.h>
#include <stdlib.h>

int main()
{
	int c, t, m, x;
	int day;
	int predictday;
	int predictday2;
	int scv;
	int current;
	int delta;
	FILE *in;
	FILE *out;

	in = fopen("scv.in", "r");
	fscanf(in, "%d %d %d %d", &c, &t, &m, &x);
	fclose(in);

	current = 0;
	day = 0;
	scv = 1;
	if (c < x) {
		while (current < x) {
			delta = ((c - current) % (scv * m) == 0) ? (c - current) / (scv * m) : (c - current) / (scv * m) + 1;
			delta = (c > current) ? delta : 0;
			day += delta;
			current += scv * m * delta;
			predictday = day + (x - current) / (scv * m);
			predictday = ((x - current) % (scv * m) == 0) ? predictday : predictday + 1;
			predictday2 = day + (x - (current - c) - scv * m * t) / ((scv + 1) * m) + t;
			predictday2 = ((x - (current - c) - scv * m * t) % ((scv + 1) * m) == 0) ? predictday2 : predictday2 + 1;
			if (predictday2 <= predictday) {
				day += t;
				current = current - c + scv * m * t;
				scv++;
			}
			else {
				day = predictday;
				current = x;
			}
		}
	}
	else
		day = (x % (scv * m) == 0) ? x / (scv * m) : x / (scv * m) + 1;

	out = fopen("scv.out", "w");
	fprintf(out, "%d\n", day);
	fclose(out);

	return 0;
}