Educational Round 73 rating change policy
Разница между en1 и en2, 10 символ(ов) изменены
Hello everyone,↵

I participated in the Educational Round 73 contest and solved problems A to E, but I had a bug in my solution to B and the round was unrated for me in the end. However, despite this I would still be looking at an increase in rating of about +25 (which is admittedly still quite disappointing compared to the +214 the CF-Predictor was claiming during the contest).↵

I don't think that it's particularly fair that the people that would have had positive deltas even with a 0 for problem B got denied their rating change. By my standards I had an outstanding contest yesterday, and while it sucks get screwed over by the checker for B, it sucks even more to solve 4 other problems and be denied that only because I had a wrong submission on B (if I just skipped over B and didn't submit B at all I wouldn't have this problem). I'm sure this happened to some other people as well, and that sucks, because they were also probably having a really good contest and in the end got nothing for it.↵

To clarify, the purpose of this post is not to bash on the fact that there was a bug in the checker for problem B, I understand that things like that happen. I just don't like the way the rating changes were addressed afterwards. To finish on a lighter note, you can try and find the bug that cost me ~200 rating.↵

<spoiler summary="The code">↵
~~~~~↵
#pragma GCC optimize "O3"↵
#include <bits/stdc++.h>↵
#include <ext/pb_ds/assoc_container.hpp>↵
 ↵
#define MP make_pair↵
#define MT make_tuple↵
#define PB push_back↵
#define F first↵
#define S second↵
#define X real()↵
#define Y imag()↵
#ifndef LOCAL↵
    #define endl "\n"↵
#endif↵
 ↵
using namespace std;↵
using namespace chrono;↵
using namespace __gnu_pbds;↵
 ↵
typedef pair<int, int> ii;↵
typedef long long ll;↵
typedef pair<ll, ll> pll;↵
typedef long long C;↵
typedef complex<C> P;↵
 ↵
const int INF = 1e9;↵
const long long LLINF = 1e18;↵
const double PI = 3.14159265358979323;↵
const long long PRIME = (1ll << 31) - 1;↵
const long long PRIME2 = 269;↵
const long long MOD = 1e9 + 7;↵
 ↵
template <class T> using ordered_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;↵
template <class T, class U> using ordered_map = tree<T, U, less<T>, rb_tree_tag, tree_order_statistics_node_update>;↵
template <class T> using hash_set = gp_hash_table<T, null_type>;↵
template <class T, class U> using hash_map = gp_hash_table<T, U>;↵
template <class T, class U> ostream& operator<< (ostream &out, pair<T, U> p) { return out << "(" << p.F << ", " << p.S << ")"; }↵
template <class T> ostream& operator<< (ostream &out, vector<T> c) { for (auto it = c.begin(); it != c.end(); ++it) { if (it != c.begin()) out << " "; out << *it; } return out; }↵
template <class T> ostream& operator<< (ostream &out, set<T> c) { for (auto it = c.begin(); it != c.end(); ++it) { if (it != c.begin()) out << " "; out << *it; } return out; }↵
template <class T, class U> ostream& operator<< (ostream &out, map<T, U> c) { for (auto it = c.begin(); it != c.end(); ++it) { if (it != c.begin()) out << " "; out << *it; } return out; }↵
template <class T> ostream& operator<< (ostream &out, ordered_set<T> c) { for (auto it = c.begin(); it != c.end(); ++it) { if (it != c.begin()) out << " "; out << *it; } return out; }↵
template <class T, class U> ostream& operator<< (ostream &out, ordered_map<T, U> c) { for (auto it = c.begin(); it != c.end(); ++it) { if (it != c.begin()) out << " "; out << *it; } return out; }↵
template <class T> ostream& operator<< (ostream &out, hash_set<T> c) { for (auto it = c.begin(); it != c.end(); ++it) { if (it != c.begin()) out << " "; out << *it; } return out; }↵
template <class T, class U> ostream& operator<< (ostream &out, hash_map<T, U> c) { for (auto it = c.begin(); it != c.end(); ++it) { if (it != c.begin()) out << " "; out << *it; } return out; }↵
template <class T> T mod (T a, T b) { return (a%b + b)%b; }↵
template <class T> ll mod (T a) { return mod((ll)a, MOD); }↵
template <class T> int sign (T x) { return (x > 0) - (x < 0); }↵
C dot (P a, P b) { return a.X * b.X + a.Y * b.Y; }↵
C cross (P a, P b) { return a.X * b.Y - b.X * a.Y; }↵
 ↵
double startTime;↵
double currTime() { return duration_cast<nanoseconds>(system_clock::now().time_since_epoch()).count() / 1e9; }↵
double execTime() { return currTime() - startTime; }↵
 ↵
int main() {↵
#ifndef LOCAL↵
    ios::sync_with_stdio(0);↵
    cin.tie(0);↵
    cout.tie(0);↵
#endif↵
    srand(time(0));↵
    startTime = currTime();↵
 ↵
    int n;↵
    cin >> n;↵
 ↵
    char c[] = { 'W', 'B' };↵
    vector<vector<char>> v(n, vector<char>(n));↵
    int pl = 0;↵
    for (int i = 0; i < n; i++)↵
        for (int j = 0; j < n; j++) {↵
            v[i][j] = c[pl];↵
            pl ^= 1;↵
        }↵
    for (int i = 0; i < n; i++) {↵
        for (int j = 0; j < n; j++)↵
            cout << v[i][j];↵
        cout << endl;↵
    }↵
}↵
~~~~~↵
</spoiler>↵


<spoiler summary="A hint">↵
The only sample was 
evenodd.↵
</spoiler>↵

История

 
 
 
 
Правки
 
 
  Rev. Язык Кто Когда Δ Комментарий
en3 Английский JaroPaska 2019-09-20 12:47:08 3 Tiny change: ' it sucks get screw' -> ' it sucks to get screw'
en2 Английский JaroPaska 2019-09-20 12:31:57 10 Tiny change: 'ample was even.\n</spoil' -> 'ample was odd.\n</spoil'
en1 Английский JaroPaska 2019-09-20 12:30:15 5025 Initial revision (published)