Code Submission Evaluation System Login

Datatähti 2019 alku

Start:2018-10-01 00:00:00
End:2018-10-15 00:00:00
 

Tasks | Messages | Scoreboard | Statistics


CSES - Datatähti 2019 alku - Results
History
2018-10-13 19:21:23100
2018-10-03 18:14:11100
2018-10-03 13:12:5114
Task:Ruudukko
Sender:ollpu
Submission time:2018-10-03 13:12:51
Language:C++
Status:READY
Score:14

Feedback

groupverdictscore
#1WRONG ANSWER0
#2ACCEPTED14
#3WRONG ANSWER0

Test results

testverdicttime (s)group
#1ACCEPTED0.02 / 1.001details
#2ACCEPTED0.02 / 1.001details
#3ACCEPTED0.03 / 1.001details
#4ACCEPTED0.02 / 1.001details
#5ACCEPTED0.03 / 1.001details
#6ACCEPTED0.02 / 1.001details
#7WRONG ANSWER0.02 / 1.001details
#8ACCEPTED0.02 / 1.001details
#9WRONG ANSWER0.02 / 1.001details
#10ACCEPTED0.01 / 1.001details
#11ACCEPTED0.02 / 1.002details
#12ACCEPTED0.03 / 1.002details
#13ACCEPTED0.02 / 1.002details
#14ACCEPTED0.02 / 1.002details
#15ACCEPTED0.02 / 1.002details
#16ACCEPTED0.03 / 1.002details
#17ACCEPTED0.03 / 1.002details
#18ACCEPTED0.02 / 1.002details
#19ACCEPTED0.03 / 1.002details
#20ACCEPTED0.03 / 1.002details
#21WRONG ANSWER0.02 / 1.003details
#22WRONG ANSWER0.02 / 1.003details
#23WRONG ANSWER0.01 / 1.003details
#24WRONG ANSWER0.03 / 1.003details
#25ACCEPTED0.03 / 1.003details
#26WRONG ANSWER0.02 / 1.003details
#27WRONG ANSWER0.02 / 1.003details
#28WRONG ANSWER0.02 / 1.003details
#29WRONG ANSWER0.02 / 1.003details
#30ACCEPTED0.02 / 1.003details

Code

// joo joo, teen rubyassemblyllä myöhemmin

#include <bits/stdc++.h>
using namespace std;
const long M = 1e9+7;
const int N = 501;
long fac[N];
long h[N][N], C[N][N];
int pos[2][2][N], z[2][N];
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  fac[0] = 1;
  fac[1] = 1;
  for (int i = 2; i <= 500; ++i) {
    fac[i] = i*fac[i-1] %M;
  }
  h[0][0] = 1;
  for (int i = 1; i <= 500; ++i) {
    h[i][0] = h[i-1][0]*i %M;
  }
  for (int i = 1; i <= 500; ++i) {
    for (int j = 1; j <= i; ++j) {
      h[i][j] = (i-1)*h[i-1][j-1];
      if (j >= 2) h[i][j] += (j-1)*h[i-2][j-2];
      h[i][j] %= M;
    }
  }
  for (int i = 0; i <= 500; ++i) {
    C[i][0] = 1;
  }
  for (int i = 1; i <= 500; ++i) {
    for (int j = 1; j <= i; ++j) {
      C[i][j] = (C[i-1][j]+C[i-1][j-1]) %M;
    }
  }
  int sn;
  cin >> sn;
  for (int i = 1; i <= sn; ++i) {
    string s;
    cin >> s;
    for (int j = 1; j <= sn; ++j) {
      char c = s[j-1];
      if (c == '.') continue;
      if (c == 'A') {
        pos[0][0][i] = j;
        pos[0][1][j] = i;
      } else {
        pos[1][0][i] = j;
        pos[1][1][j] = i;
      }
    }
  }
  int a = 0, b = 0, l = 0, r = 0, pa = 0, pb = 0, lp = 0, rp = 0;
  for (int i = 1; i <= sn; ++i) {
    if (!z[0][i] && ((pos[0][0][i] == 0) != (pos[1][0][i] == 0))) {
      int i0 = pos[0][0][i] == 0, i1 = 0, i2 = i;
      int len = 0;
      z[i1][i2] = 1;
      while (pos[i0][i1][i2]) {
        len++;
        tie(i0, i1, i2) = make_tuple(!i0, !i1, pos[i0][i1][i2]);
        z[i1][i2] = 1;
      }
      if (len == 1) {
        if (pos[0][0][i]) a++;
        else b++;
      } else {
        len %= 2;
        if (len) {
          if (pos[0][0][i]) pa++;
          else pb++;
        } else {
          l++;
        }
      }
    }
    if (pos[0][0][i] == 0 && pos[1][0][i] == 0) {
      lp++;
    }
  }
  for (int i = 1; i <= sn; ++i) {
    if (!z[1][i] && ((pos[0][1][i] == 0) != (pos[1][1][i] == 0))) r++;
    if (pos[0][1][i] == 0 && pos[1][1][i] == 0) {
      rp++;
    }
  }
  r /= 2;
  long res = 0;
  for (int ipa = 0; ipa <= pa; ++ipa) {
    for (int ipb = 0; ipb <= pb; ++ipb) {
      int ta = a+ipa, tb = b+ipb;
      int bc = ta+l+lp, ac = tb+l+lp;
      long ml = 0;
      for (int z = max(0, min(lp,rp)-ta-l); z <= min(lp, rp); ++z) {
        long x = h[bc-z][ta];
        x *= C[lp][z]*C[rp][z] %M;
        x %= M;
        x *= fac[z]*h[ac][tb+z] %M;
        x %= M;
        ml = (ml+x)%M;
      }
      ml *= C[pa][ipa]*C[pb][ipb] %M;
      ml %= M;
      res = (res+ml)%M;
    }
  }
  cout << res << endl;
}

Test details

Test 1

Group: 1

Verdict: ACCEPTED

input
2
..
..
view   save

correct output
2
view   save

user output
2
view   save

Test 2

Group: 1

Verdict: ACCEPTED

input
2
..
A.
view   save

correct output
1
view   save

user output
1
view   save

Test 3

Group: 1

Verdict: ACCEPTED

input
2
B.
.A
view   save

correct output
0
view   save

user output
0
view   save

Test 4

Group: 1

Verdict: ACCEPTED

input
3
...
...
...
view   save

correct output
12
view   save

user output
12
view   save

Test 5

Group: 1

Verdict: ACCEPTED

input
4
....
....
....
....
view   save

correct output
216
view   save

user output
216
view   save

Test 6

Group: 1

Verdict: ACCEPTED

input
5
.....
.....
.....
.....
.....
view   save

correct output
5280
view   save

user output
5280
view   save

Test 7

Group: 1

Verdict: WRONG ANSWER

input
5
....A
.....
.....
.....
A....
view   save

correct output
264
view   save

user output
678
view   save

Test 8

Group: 1

Verdict: ACCEPTED

input
5
B....
.....
.....
.A.B.
.B...
view   save

correct output
22
view   save

user output
22
view   save

Test 9

Group: 1

Verdict: WRONG ANSWER

input
5
B.A..
....A
.....
A.B..
....B
view   save

correct output
2
view   save

user output
6
view   save

Test 10

Group: 1

Verdict: ACCEPTED

input
5
A.B..
BA...
.B.A.
...BA
....B
view   save

correct output
1
view   save

user output
1
view   save

Test 11

Group: 2

Verdict: ACCEPTED

input
10
..........
..........
..........
..........
..........
..........
..........
..........
..........
..........
view   save

correct output
306442892
view   save

user output
306442892
view   save

Test 12

Group: 2

Verdict: ACCEPTED

input
50
.................................
.................................
.................................
.................................
.................................
.................................
.................................
.................................
.................................
.................................
.................................
.................................
.................................
.................................
.................................
.................................
.................................
.................................
.................................
...
view   save

correct output
694861480
view   save

user output
694861480
view   save

Test 13

Group: 2

Verdict: ACCEPTED

input
111
.................................
.................................
.................................
.................................
.................................
.................................
.................................
.................................
.................................
view   save

correct output
555319110
view   save

user output
555319110
view   save

Test 14

Group: 2

Verdict: ACCEPTED

input
222
.................................
.................................
.................................
.................................
.................................
view   save

correct output
108372237
view   save

user output
108372237
view   save

Test 15

Group: 2

Verdict: ACCEPTED

input
333
.................................
.................................
.................................
view   save

correct output
259107857
view   save

user output
259107857
view   save

Test 16

Group: 2

Verdict: ACCEPTED

input
444
.................................
.................................
.................................
view   save

correct output
19906314
view   save

user output
19906314
view   save

Test 17

Group: 2

Verdict: ACCEPTED

input
497
.................................
.................................
view   save

correct output
224313667
view   save

user output
224313667
view   save

Test 18

Group: 2

Verdict: ACCEPTED

input
498
.................................
.................................
view   save

correct output
929574601
view   save

user output
929574601
view   save

Test 19

Group: 2

Verdict: ACCEPTED

input
499
.................................
.................................
view   save

correct output
600226043
view   save

user output
600226043
view   save

Test 20

Group: 2

Verdict: ACCEPTED

input
500
.................................
.................................
view   save

correct output
198353194
view   save

user output
198353194
view   save

Test 21

Group: 3

Verdict: WRONG ANSWER

input
499
.................................
.........................A.......
view   save

correct output
840243733
view   save

user output
637762816
view   save

Test 22

Group: 3

Verdict: WRONG ANSWER

input
499
........................A........
..........A...B..................
view   save

correct output
4146290
view   save

user output
661753216
view   save

Test 23

Group: 3

Verdict: WRONG ANSWER

input
499
B.........A......................
....AB...........................
view   save

correct output
173518884
view   save

user output
506623982
view   save

Test 24

Group: 3

Verdict: WRONG ANSWER

input
499
...A....B........................
.........A...B...................
view   save

correct output
20044800
view   save

user output
32140800
view   save

Test 25

Group: 3

Verdict: ACCEPTED

input
499
AB...............................
....B.......A....................
view   save

correct output
2
view   save

user output
2
view   save

Test 26

Group: 3

Verdict: WRONG ANSWER

input
500
.................................
.................................
view   save

correct output
121064146
view   save

user output
757959696
view   save

Test 27

Group: 3

Verdict: WRONG ANSWER

input
500
.................................
..................A..............
view   save

correct output
848435259
view   save

user output
938875674
view   save

Test 28

Group: 3

Verdict: WRONG ANSWER

input
500
.....B........A..................
..........B...............A......
view   save

correct output
296240911
view   save

user output
354820232
view   save

Test 29

Group: 3

Verdict: WRONG ANSWER

input
500
.A......B........................
..A.............B................
view   save

correct output
2196
view   save

user output
2772
view   save

Test 30

Group: 3

Verdict: ACCEPTED

input
500
...AB............................
.A.....B.........................
view   save

correct output
1
view   save

user output
1
view   save