http://codeforces.me/contest/484/submission/8617714
http://codeforces.me/contest/484/submission/8617627
различие этих решений только в выводе и вводе
Поясните что здесь не так?
http://codeforces.me/contest/484/submission/8617714
http://codeforces.me/contest/484/submission/8617627
различие этих решений только в выводе и вводе
Поясните что здесь не так?
| № | Пользователь | Рейтинг |
|---|---|---|
| 1 | Benq | 3676 |
| 2 | Kevin114514 | 3659 |
| 3 | jiangly | 3640 |
| 4 | turmax | 3450 |
| 5 | tourist | 3408 |
| 6 | strapple | 3360 |
| 7 | Um_nik | 3354 |
| 8 | squareOf105 | 3348 |
| 9 | maroonrk | 3312 |
| 10 | idontwannadothis…e | 3191 |
| Страны | Города | Организации | Всё → |
| № | Пользователь | Вклад |
|---|---|---|
| 1 | Qingyu | 155 |
| 2 | nik_exists | 151 |
| 3 | maspy | 149 |
| 4 | AmShZ | 145 |
| 5 | Um_nik | 143 |
| 6 | Errichto | 139 |
| 7 | BledDest | 136 |
| 8 | adamant | 135 |
| 9 | maroonrk | 132 |
| 10 | cry | 130 |
| Название |
|---|



Кажется getline(cin, s) работает долго без ios_base::sync_with_stdio(false)
Я вот поменял только вывод и получил AC 700мс.
http://codeforces.me/contest/484/submission/8617808
Да и я вообще не понимаю вашего коммента. Вроде как как раз без ios_base::sync_with_stdio(false), но с getline(cin, s) получается AC.
getline (cin, s) без ios_base::sync_with_stdio(false) есть только в коде который получает AC. Так что он никак не влияет
ой, точно. Я перепутал посылки. Теперь я сам не понимаю что здесь не так
Кстати, а зачем выводить строку вот таким циклом? :)
У меня был сабмит и с нормальным выводом строки.
Он тоже не проходил по тл.
Это сделано, для того чтобы никто не придирался к фразе
"различие этих решений только в выводе и вводе"
Есть подозрение, что просто всякий раз при чередовании cin-cout потоки синхронизируются, дабы данные например в консоли выглядели естественно, поэтому вот такой код работает за меньше чем 600мс.
http://codeforces.me/contest/484/submission/8617887
UPD. Хоть я понимал sync_with_stdio(false) как раз как отключение синхронизации потоков для cin-cout. Если кто-то разъяснит, будет здорово! :)
Понял. Спасибо!
Ещё эту проблему можно решить добавлением строки cin.tie(0); Это отключает синхронизацию потоков.
sync_with_stdio(0) отключает синхронизацию iostream и stdio, т.е. cin/cout и scanf/printf.
Потому что нечего слишком части cout флашить.
Решение проблемы — отвязка cin от cout с помощью
cin.tie(0);.8617989
UPD: MrDindows обогнал)
Same solution got accepted after writing cin.tie(NULL); http://codeforces.me/contest/484/submission/8618056
http://www.quora.com/What-is-use-of-the-statement-ios_base-sync_with_stdio-false-cin-tie-NULL-cout-tie-NULL-What-does-it-do
My advice: When you read many lines of input, always turn synchronization off, if you use streams.
Иногда бывало на контестах, что удаление этих двух заветных строк:
меняло вердикт решения с WA на ACC, при это ввод и вывод осуществлялся через cin и cout. До сих пор не понимаю почему. Наверное это зависит от тестирующих систем и компиляторов.
Пример был бы к стати. Другими словами — есть ли какие-то причины/минусы неиспользовать эти 2 строки в программах СП?
При наличии этих строк нельзя одновременно использовать scanf и cin, printf и cout. Скорее всего, WA был из-за этого.
Anyway, под Visual Studio эти строчки ничего не делают, поэтому пользующимся этой средой локально сие явление незаметно.