NaimSS's blog

By NaimSS, history, 16 months ago, In English

Last week we had a local Contest available here (statements only in portuguese), and I was surprised when the easiest problem was getting a lot of Wrong Answers on test 1. All of them seemed correct, gave the correct output locally and were using GNU C11. For some reason, re-submitting the same code in GNU C++ gave AC. Why?

Problem Statement

Given the formula of gravitational attraction $$$F = \frac{G\cdot M_1 \cdot M_ 2}{d^2}$$$, find the value of $$$G$$$ given the mass of the 2 objects, the force and their positions on space (which is only a line).

The code

WA on 1

AC

After seeing this, I made an announcement for people to submit their problem using GNU C++ and a ton of AC came in... as a setter I was frustrated by such a bug and want to know why that happened :(

  • Vote: I like it
  • +7
  • Vote: I do not like it

»
16 months ago, # |
  Vote: I like it 0 Vote: I do not like it

Auto comment: topic has been updated by NaimSS (previous revision, new revision, compare).

»
16 months ago, # |
  Vote: I like it +15 Vote: I do not like it

As far as I see in custom invocation, the following code:

#include <stdio.h>

int main() {
    double x;
    scanf("%lf", &x);
    printf("%lf\n", x);
}

on the input 1.00 prints 0.000000. On the other hand, people had no troubles reading doubles in C not so long ago.

»
16 months ago, # |
  Vote: I like it 0 Vote: I do not like it

Can't found any evidence that lf is correct specification, but standard clearly says that f must work fine (for printf, not scanf)