Problem: 1864F. Exotic Queries
The time limit is 4s. The input size is $$$n,q \le 10^6$$$. The standard solution uses a segment tree and the input/output size is very large. The sync of cin,cout with stdio is turned off in all implementations if cin,cout is used.
Cin,cout
vs Fast IO
, Scanf on C++20 (64)
- 220904724 Array implementation with cin,cout on C++20 (64) -> TLE
- 220952057 Array implementation with Fast IO on C++20 (64) -> 1762 ms
- 220950571 Array implementation with Scanf on C++20 (64) -> 3181 ms
- 220950753 Pointer implementation with Scanf on C++20 (64) -> 3868 ms
- 220947347 Pointer implementation with cin,cout on C++20 (64) -> 1872ms
- 220954316 Pointer implementation with Fast IO on C++20 (64) -> 2277ms
C++17 (32) vs C++20 (64)
- 220904724 Array implementation with cin,cout on C++20 (64) -> TLE
- 220904724 Array implementation with cin,cout on C++17 (32) -> 1621ms
- 220947347 Pointer implementation with cin,cout on C++20 (64) -> 1872ms
- 220953695 Pointer implementation with cin,cout on C++17 (32) -> 1934ms
Pointer implementation vs Array implementation
- 220904724 Array implementation with cin,cout on C++20 (64) -> TLE
- 220947347 Pointer implementation with cin,cout on C++20 (64) -> 1872ms
Some guessed conclusions
These facts makes no sense to me. Based on the facts, I guess
- It's better to use Pointer implementation if you use cin,cout on C++20 (64)
- If you prefer array implementation, use Fast IO or scanf on C++20 (64)
- The 32/64 bit compiler has some influence on cin,cout performance
Do you guys have some idea why such cases happen? Or did I implement something improper so that it reduced the efficiency?