# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
791922 | 2023-07-24T12:34:45 Z | Amylopectin | Star Trek (CEOI20_startrek) | C++14 | 1000 ms | 57304 KB |
#include <stdio.h> #include <iostream> #include <vector> #include <algorithm> #include <set> #include <stdlib.h> #pragma GCC optimize("O3,unroll-loops") using namespace std; const long long mxn = 1e6 + 10,mo = 1e9 + 7; struct we { long long to,val[2][2],cur[2],num,ft; we() { to = 0; val[0][0] = -1; val[0][1] = -1; val[1][0] = -1; val[1][1] = -1; cur[0] = -1; cur[1] = -1; num = 0; ft = -1; } we(long long cn,long long cnu,long long cft) { to = cn; val[0][0] = -1; val[0][1] = -1; val[1][0] = -1; val[1][1] = -1; cur[0] = -1; cur[1] = -1; num = cnu; ft = cft; } }; vector<struct we> pat[mxn] = {}; long long pid[mxn][2] = {},rwol,stt[mxn][2][3] = {},cou = 0; long long re(long long cn,long long cidx,long long wh) { long long i,j,fn,fm,ccur = -1,cva0 = 0,fidx,wop = (wh+1)&1,fcur,fva0,cva1 = 0,fva1; if(cidx != -1) { if(pat[cn][cidx].cur[wh] != -1) { return 0; } } for(i=0; i<pat[cn].size(); i++) { fn = pat[cn][i].to; if(i == cidx) { continue; } fidx = pid[pat[cn][i].num][(pat[cn][i].ft + 1)&1]; if(fidx == -1) { exit(1); } re(fn,fidx,wop); fcur = pat[fn][fidx].cur[wop]; fva0 = pat[fn][fidx].val[wop][0]; fva1 = pat[fn][fidx].val[wop][1]; if(wh == 0) { if(ccur == -1) { ccur = fcur; if(ccur < 2) { cva0 = fva0; cva1 = fva1; } } else { if(fcur == 0) { if(ccur != 0) { cva0 = fva0; cva1 = 0; } else { cva0 = 0; } ccur = 0; } else if(fcur == 1) { if(ccur == 0) { // cva0 += fva0; // cva += fva; } else if(ccur == 1) { cva1 += fva1; cva0 = 0; } else { ccur = 1; cva1 += fva1; cva0 = 0; } } } } else { if(ccur == -1) { ccur = fcur; if(ccur == 2) { ccur = 1; } // if(ccur < 2) // { // cva = fva; cva0 = fva0; cva1 = fva1; // } } else { if(ccur == 0) { if(fcur == 0) { cva0 += fva0; } else if(fcur == 1) { ccur = 1; cva0 = fva0; cva1 = fva1; } else { cva0 = fva0; cva1 = fva1; ccur = 1; } } else if(ccur == 1) { if(fcur >= 1) { cva0 = 0; cva1 = 0; ccur = 2; } } } } } if(wh == 0) { if(ccur == -1) { ccur = 1; cva1 = 1; cva0 = 0; } else if(ccur == 0) { // cva ++; } else if(ccur >= 1) { ccur = 1; cva1 ++; } } else { if(ccur == -1) { ccur = 0; cva0 = 1; } else if(ccur == 0) { cva0 ++; } } if(cidx == -1) { stt[cn][wh][0] = cva0; stt[cn][wh][1] = cva1; stt[cn][wh][2] = ccur; } else { if(ccur == -1) { exit(1); } pat[cn][cidx].cur[wh] = ccur; pat[cn][cidx].val[wh][0] = cva0; pat[cn][cidx].val[wh][1] = cva1; } cou ++; if(cou > 600000) { exit(1); } return 0; } int main() { // freopen("input1.txt","r",stdin); long long i,j,n,m,cn,cm,fn,fm,cl,cr,su,cen,cva0,cva1,ccur,uw,ans; scanf("%lld %lld",&n,&m); for(i=1; i<n; i++) { scanf("%lld %lld",&cn,&cm); pid[i][0] = pat[cn].size(); pid[i][1] = pat[cm].size(); pat[cn].emplace_back(cm,i,0); pat[cm].emplace_back(cn,i,1); // pat[cn].push_back({cm,{{-1,-1},{-1,-1}},{-1,-1},i,0}); // pat[cm].push_back({cn,{{-1,-1},{-1,-1}},{-1,-1},i,1}); } uw = 0; cva0 = 0; cva1 = 0; for(i=1; i<=n; i++) { re(i,-1,0); re(i,-1,1); if(stt[i][0][2] == 0) { cva0 ++; } if(stt[i][1][2] == 0) { cva1 ++; } } ans = 0; if(stt[1][0][2] == 0) { ans = ((n - stt[1][0][0] - stt[1][0][1]) * n) % mo; } ans += stt[1][0][0] * cva0 + stt[1][0][1] * cva1; ans %= mo; printf("%lld\n",ans); return 0; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 12 ms | 23708 KB | Output is correct |
2 | Incorrect | 13 ms | 24040 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 12 ms | 23764 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 11 ms | 23764 KB | Output is correct |
2 | Correct | 12 ms | 23724 KB | Output is correct |
3 | Correct | 13 ms | 23828 KB | Output is correct |
4 | Correct | 12 ms | 23732 KB | Output is correct |
5 | Correct | 12 ms | 23816 KB | Output is correct |
6 | Correct | 12 ms | 23764 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 11 ms | 23764 KB | Output is correct |
2 | Correct | 12 ms | 23724 KB | Output is correct |
3 | Correct | 13 ms | 23828 KB | Output is correct |
4 | Correct | 12 ms | 23732 KB | Output is correct |
5 | Correct | 12 ms | 23816 KB | Output is correct |
6 | Correct | 12 ms | 23764 KB | Output is correct |
7 | Correct | 12 ms | 24020 KB | Output is correct |
8 | Correct | 15 ms | 24152 KB | Output is correct |
9 | Correct | 16 ms | 24024 KB | Output is correct |
10 | Correct | 13 ms | 24020 KB | Output is correct |
11 | Correct | 13 ms | 24000 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 11 ms | 23764 KB | Output is correct |
2 | Correct | 12 ms | 23724 KB | Output is correct |
3 | Correct | 13 ms | 23828 KB | Output is correct |
4 | Correct | 12 ms | 23732 KB | Output is correct |
5 | Correct | 12 ms | 23816 KB | Output is correct |
6 | Correct | 12 ms | 23764 KB | Output is correct |
7 | Correct | 12 ms | 24020 KB | Output is correct |
8 | Correct | 15 ms | 24152 KB | Output is correct |
9 | Correct | 16 ms | 24024 KB | Output is correct |
10 | Correct | 13 ms | 24020 KB | Output is correct |
11 | Correct | 13 ms | 24000 KB | Output is correct |
12 | Correct | 159 ms | 51760 KB | Output is correct |
13 | Correct | 201 ms | 57304 KB | Output is correct |
14 | Execution timed out | 1083 ms | 40972 KB | Time limit exceeded |
15 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 11 ms | 23764 KB | Output is correct |
2 | Correct | 12 ms | 23724 KB | Output is correct |
3 | Correct | 13 ms | 23828 KB | Output is correct |
4 | Correct | 12 ms | 23732 KB | Output is correct |
5 | Correct | 12 ms | 23816 KB | Output is correct |
6 | Correct | 12 ms | 23764 KB | Output is correct |
7 | Correct | 12 ms | 24020 KB | Output is correct |
8 | Correct | 15 ms | 24152 KB | Output is correct |
9 | Correct | 16 ms | 24024 KB | Output is correct |
10 | Correct | 13 ms | 24020 KB | Output is correct |
11 | Correct | 13 ms | 24000 KB | Output is correct |
12 | Correct | 15 ms | 23748 KB | Output is correct |
13 | Incorrect | 13 ms | 24020 KB | Output isn't correct |
14 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 11 ms | 23764 KB | Output is correct |
2 | Correct | 12 ms | 23724 KB | Output is correct |
3 | Correct | 13 ms | 23828 KB | Output is correct |
4 | Correct | 12 ms | 23732 KB | Output is correct |
5 | Correct | 12 ms | 23816 KB | Output is correct |
6 | Correct | 12 ms | 23764 KB | Output is correct |
7 | Correct | 12 ms | 24020 KB | Output is correct |
8 | Correct | 15 ms | 24152 KB | Output is correct |
9 | Correct | 16 ms | 24024 KB | Output is correct |
10 | Correct | 13 ms | 24020 KB | Output is correct |
11 | Correct | 13 ms | 24000 KB | Output is correct |
12 | Correct | 159 ms | 51760 KB | Output is correct |
13 | Correct | 201 ms | 57304 KB | Output is correct |
14 | Execution timed out | 1083 ms | 40972 KB | Time limit exceeded |
15 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 12 ms | 23708 KB | Output is correct |
2 | Incorrect | 13 ms | 24040 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |