1 | static class LFunctionPlusPrevious extends LearnerImpl {
|
2 | static boolean debug; |
3 | Stepper stepper; |
4 | new List<O[]> examples; |
5 | |
6 | public void processInOut(O in, O out) {
|
7 | examples.add(new O[] {in, out});
|
8 | |
9 | if (stepper == null) |
10 | stepper = new Stepper(allFunctions(), solvedCases()); |
11 | |
12 | while (!stepper.ended()) {
|
13 | if (check(stepper.current())) |
14 | ret; // ok, keep |
15 | else |
16 | stepper.step(); |
17 | } |
18 | |
19 | fail(); |
20 | } |
21 | |
22 | boolean check(O[] fg) {
|
23 | if (debug) debug("Checking " + structure(fg));
|
24 | for (O[] e : examples) {
|
25 | O o = tryProcess((Function) fg[0], e[0]); |
26 | if (o != null) {
|
27 | O x = tryProcess(((Case) fg[1]).winner, o); |
28 | if (e[1].equals(x)) |
29 | continue; // example ok |
30 | } |
31 | ret false; |
32 | } |
33 | ret true; // all examples ok |
34 | } |
35 | |
36 | public O processIn(O in) {
|
37 | Object[] fg = stepper.current(); |
38 | ret ((Case) fg[1]).processIn(((Function) fg[0]).process(in)); |
39 | } |
40 | |
41 | static class Stepper {
|
42 | List<Function> functions; |
43 | List<Case> cases; |
44 | int i1, i2; |
45 | |
46 | *(List<Function> *functions, List<Case> *cases) {}
|
47 | |
48 | boolean ended() {
|
49 | ret i1 >= functions.size(); |
50 | } |
51 | |
52 | O[] current() {
|
53 | ret new O[] {functions.get(i1), cases.get(i2)};
|
54 | } |
55 | |
56 | void step() {
|
57 | if (i2 < cases.size()-1) ++i2; |
58 | else { ++i1; i2 = 0; }
|
59 | } |
60 | } |
61 | } |
Travelled to 14 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, gwrvuhgaqvyk, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, onxytkatvevr, pyentgdyhuwx, pzhvpgtvlbxg, tslmcundralx, tvejysmllsmz, vouqrxazstgt
No comments. add comment
| Snippet ID: | #1000509 |
| Snippet name: | LFunctionPlusPrevious (learner) |
| Eternal ID of this version: | #1000509/1 |
| Text MD5: | 19d1d6a3c694ca22cb9f7cacec33ea06 |
| Author: | stefan |
| Category: | |
| Type: | IOIOI |
| Public (visible to everyone): | Yes |
| Archived (hidden from active list): | No |
| Created/modified: | 2015-08-09 20:55:15 |
| Source code size: | 1420 bytes / 61 lines |
| Pitched / IR pitched: | No / Yes |
| Views / Downloads: | 750 / 971 |
| Referenced in: | [show references] |