# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
105388 | 2019-04-11T18:21:31 Z | eriksuenderhauf | Parrots (IOI11_parrots) | C++11 | 504 ms | 232952 KB |
#include <bits/stdc++.h> #include "encoder.h" #include "encoderlib.h" //#include "grader.h" using namespace std; struct bigInt { const int sz = 80; int val[81]; bigInt() { memset(val, 0, sizeof val); } bigInt &operator += (const bigInt &rhs) { for (int i = 0; i < sz; i++) { val[i] += rhs.val[i]; val[i + 1] += (val[i] >> 8); val[i] &= 255; } return *this; } bigInt &operator -= (const bigInt &rhs) { for (int i = 0; i < sz; i++) { val[i] -= rhs.val[i]; if (val[i] < 0) { val[i + 1]--; val[i] += 256; } } return *this; } bool operator <= (const bigInt &rhs) { for (int i = sz - 1; i > -1; i--) { if (val[i] < rhs.val[i]) return 1; if (val[i] > rhs.val[i]) return 0; } return 1; } }; static bigInt operator +(const bigInt lhs, const bigInt rhs) { bigInt ret; ret += lhs; ret += rhs; return ret; } static int a[800], cnt[300]; static bigInt dp[600][600]; static bool init = 1; void encode(int n, int M[]) { if (init) { dp[0][0].val[0] = 1; for (int i = 1; i < 600; i++) { for (int j = 0; j <= i; j++) { if (j == 0 || j == i) dp[i][j].val[0] = 1; else dp[i][j] += dp[i - 1][j] + dp[i - 1][j - 1]; } } init = 0; } memset(cnt, 0, sizeof cnt); bigInt cur; for (int i = 0; i < n; i++) cur.val[i] = M[i]; int len = 5 * n; for (int i = 0; i < 256; i++) { while (dp[255 - i + len][len] <= cur) { cur -= dp[255 - i + len][len]; len--; cnt[i]++; } } for (int j = 0; j < 256; j++) while (cnt[j]--) send(j); }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 452 ms | 232008 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 448 ms | 232432 KB | Output is correct |
2 | Correct | 460 ms | 232688 KB | Output is correct |
3 | Correct | 501 ms | 232688 KB | Output is correct |
4 | Correct | 451 ms | 232688 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 446 ms | 232632 KB | Output is correct |
2 | Correct | 486 ms | 232632 KB | Output is correct |
3 | Correct | 487 ms | 232624 KB | Output is correct |
4 | Correct | 479 ms | 232688 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 480 ms | 232816 KB | Output is correct |
2 | Correct | 473 ms | 232672 KB | Output is correct |
3 | Correct | 489 ms | 232712 KB | Output is correct |
4 | Correct | 491 ms | 232816 KB | Output is correct |
5 | Correct | 483 ms | 232688 KB | Output is correct |
6 | Correct | 490 ms | 232688 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 481 ms | 232632 KB | Output is correct - P = 5.000000 |
2 | Correct | 484 ms | 232624 KB | Output is correct - P = 5.000000 |
3 | Correct | 504 ms | 232688 KB | Output is correct - P = 5.000000 |
4 | Correct | 472 ms | 232688 KB | Output is correct - P = 5.000000 |
5 | Correct | 482 ms | 232952 KB | Output is correct - P = 5.000000 |
6 | Correct | 478 ms | 232944 KB | Output is correct - P = 5.000000 |
7 | Correct | 463 ms | 232888 KB | Output is correct - P = 5.000000 |