Cod sursa(job #2792048)

Utilizator YusyBossFares Yusuf YusyBoss Data 31 octombrie 2021 19:20:00
Problema Datorii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <iostream>
#include <stdio.h>

using namespace std;

int main(){
  FILE *fin, *fout;
  int st, dr, ok, valmax;
  long long s, prod1, prod2;

  fin = fopen("dartz.in", "r");
  fscanf(fin, "%lld", &s);
  fclose( fin );

  s /= 2;

  valmax = 1;
  while (1ll * valmax * (valmax + 1) * (valmax + 2) < s)
    valmax++;

  st = 1; dr = valmax - 1;
  ok = 0;
  while (!ok) {
    prod1 = 1ll * st * (st + 1) * (st + 2);
    prod2 = 1ll * dr * (dr + 1) * (dr + 2);

    if (prod1 + prod2 > s)
      dr--;
    else if (prod1 + prod2 < s)
      st++;
    else
      ok = 1;
  }

  fout = fopen("dartz.out", "w");
  fprintf(fout, "%d %d %d %d", st, dr, st, dr);
  fclose( fout );
  return 0;
}