トップページに戻る    次のC#のサンプルへ    前のC#のサンプルへ

Problem102 三角形の包含

問題

3つの異なる点が -1000 <= x,y <= 1000 かつ三角形となるように, デカルト平面上にランダムに与えられる.

以下の2つの三角形を考える.

・ A(-340,495), B(-153,-910), C(835,-947)
・ X(-175, 41), Y(-421,-714), Z(574,-645)

三角形ABCが原点を内部に含み, XYZは原点を内部に含まないことが確かめられる.

テキストファイルにランダムな1000個の三角形が適当なフォーマットで含んでいる.
内部に原点を含む三角形の数を答えよ.

注: ファイル中の最初の2つは三角形ABC, XYZである.


ソース

using System;
using System.Collections.Generic;

class Program
{
    static List<int[]> mSankakuList = new List<int[]>();

    static void ExecAdd(int pX1, int pY1, int pX2, int pY2, int pX3, int pY3)
    {
        mSankakuList.Add(new int[] { pX1, pY1, pX2, pY2, pX3, pY3 });
    }

    static void Main()
    {
        ExecAdd(-340, 495, -153, -910, 835, -947);
        ExecAdd(-175, 41, -421, -714, 574, -645);
        ExecAdd(-547, 712, -352, 579, 951, -786);
        ExecAdd(419, -864, -83, 650, -399, 171);
        ExecAdd(-429, -89, -357, -930, 296, -29);
        ExecAdd(-734, -702, 823, -745, -684, -62);
        ExecAdd(-971, 762, 925, -776, -663, -157);
        ExecAdd(162, 570, 628, 485, -807, -896);
        ExecAdd(641, 91, -65, 700, 887, 759);
        ExecAdd(215, -496, 46, -931, 422, -30);
        ExecAdd(-119, 359, 668, -609, -358, -494);
        ExecAdd(440, 929, 968, 214, 760, -857);
        ExecAdd(-700, 785, 838, 29, -216, 411);
        ExecAdd(-770, -458, -325, -53, -505, 633);
        ExecAdd(-752, -805, 349, 776, -799, 687);
        ExecAdd(323, 5, 561, -36, 919, -560);
        ExecAdd(-907, 358, 264, 320, 204, 274);
        ExecAdd(-728, -466, 350, 969, 292, -345);
        ExecAdd(940, 836, 272, -533, 748, 185);
        ExecAdd(411, 998, 813, 520, 316, -949);
        ExecAdd(-152, 326, 658, -762, 148, -651);
        ExecAdd(330, 507, -9, -628, 101, 174);
        ExecAdd(551, -496, 772, -541, -702, -45);
        ExecAdd(-164, -489, -90, 322, 631, -59);
        ExecAdd(673, 366, -4, -143, -606, -704);
        ExecAdd(428, -609, 801, -449, 740, -269);
        ExecAdd(453, -924, -785, -346, -853, 111);
        ExecAdd(-738, 555, -181, 467, -426, -20);
        ExecAdd(958, -692, 784, -343, 505, -569);
        ExecAdd(620, 27, 263, 54, -439, -726);
        ExecAdd(804, 87, 998, 859, 871, -78);
        ExecAdd(-119, -453, -709, -292, -115, -56);
        ExecAdd(-626, 138, -940, -476, -177, -274);
        ExecAdd(-11, 160, 142, 588, 446, 158);
        ExecAdd(538, 727, 550, 787, 330, 810);
        ExecAdd(420, -689, 854, -546, 337, 516);
        ExecAdd(872, -998, -607, 748, 473, -192);
        ExecAdd(653, 440, -516, -985, 808, -857);
        ExecAdd(374, -158, 331, -940, -338, -641);
        ExecAdd(137, -925, -179, 771, 734, -715);
        ExecAdd(-314, 198, -115, 29, -641, -39);
        ExecAdd(759, -574, -385, 355, 590, -603);
        ExecAdd(-189, -63, -168, 204, 289, 305);
        ExecAdd(-182, -524, -715, -621, 911, -255);
        ExecAdd(331, -816, -833, 471, 168, 126);
        ExecAdd(-514, 581, -855, -220, -731, -507);
        ExecAdd(129, 169, 576, 651, -87, -458);
        ExecAdd(783, -444, -881, 658, -266, 298);
        ExecAdd(603, -430, -598, 585, 368, 899);
        ExecAdd(43, -724, 962, -376, 851, 409);
        ExecAdd(-610, -646, -883, -261, -482, -881);
        ExecAdd(-117, -237, 978, 641, 101, -747);
        ExecAdd(579, 125, -715, -712, 208, 534);
        ExecAdd(672, -214, -762, 372, 874, 533);
        ExecAdd(-564, 965, 38, 715, 367, 242);
        ExecAdd(500, 951, -700, -981, -61, -178);
        ExecAdd(-382, -224, -959, 903, -282, -60);
        ExecAdd(-355, 295, 426, -331, -591, 655);
        ExecAdd(892, 128, 958, -271, -993, 274);
        ExecAdd(-454, -619, 302, 138, -790, -874);
        ExecAdd(-642, 601, -574, 159, -290, -318);
        ExecAdd(266, -109, 257, -686, 54, 975);
        ExecAdd(162, 628, -478, 840, 264, -266);
        ExecAdd(466, -280, 982, 1, 904, -810);
        ExecAdd(721, 839, 730, -807, 777, 981);
        ExecAdd(-129, -430, 748, 263, 943, 96);
        ExecAdd(434, -94, 410, -990, 249, -704);
        ExecAdd(237, 42, 122, -732, 44, -51);
        ExecAdd(909, -116, -229, 545, 292, 717);
        ExecAdd(824, -768, -807, -370, -262, 30);
        ExecAdd(675, 58, 332, -890, -651, 791);
        ExecAdd(363, 825, -717, 254, 684, 240);
        ExecAdd(405, -715, 900, 166, -589, 422);
        ExecAdd(-476, 686, -830, -319, 634, -807);
        ExecAdd(633, 837, -971, 917, -764, 207);
        ExecAdd(-116, -44, -193, -70, 908, 809);
        ExecAdd(-26, -252, 998, 408, 70, -713);
        ExecAdd(-601, 645, -462, 842, -644, -591);
        ExecAdd(-160, 653, 274, 113, -138, 687);
        ExecAdd(369, -273, -181, 925, -167, -693);
        ExecAdd(-338, 135, 480, -967, -13, -840);
        ExecAdd(-90, -270, -564, 695, 161, 907);
        ExecAdd(607, -430, 869, -713, 461, -469);
        ExecAdd(919, -165, -776, 522, 606, -708);
        ExecAdd(-203, 465, 288, 207, -339, -458);
        ExecAdd(-453, -534, -715, 975, 838, -677);
        ExecAdd(-973, 310, -350, 934, 546, -805);
        ExecAdd(-835, 385, 708, -337, -594, -772);
        ExecAdd(-14, 914, 900, -495, -627, 594);
        ExecAdd(833, -713, -213, 578, -296, 699);
        ExecAdd(-27, -748, 484, 455, 915, 291);
        ExecAdd(270, 889, 739, -57, 442, -516);
        ExecAdd(119, 811, -679, 905, 184, 130);
        ExecAdd(-678, -469, 925, 553, 612, 482);
        ExecAdd(101, -571, -732, -842, 644, 588);
        ExecAdd(-71, -737, 566, 616, 957, -663);
        ExecAdd(-634, -356, 90, -207, 936, 622);
        ExecAdd(598, 443, 964, -895, -58, 529);
        ExecAdd(847, -467, 929, -742, 91, 10);
        ExecAdd(-633, 829, -780, -408, 222, -30);
        ExecAdd(-818, 57, 275, -38, -746, 198);
        ExecAdd(-722, -825, -549, 597, -391, 99);
        ExecAdd(-570, 908, 430, 873, -103, -360);
        ExecAdd(342, -681, 512, 434, 542, -528);
        ExecAdd(297, 850, 479, 609, 543, -357);
        ExecAdd(9, 784, 212, 548, 56, 859);
        ExecAdd(-152, 560, -240, -969, -18, 713);
        ExecAdd(140, -133, 34, -635, 250, -163);
        ExecAdd(-272, -22, -169, -662, 989, -604);
        ExecAdd(471, -765, 355, 633, -742, -118);
        ExecAdd(-118, 146, 942, 663, 547, -376);
        ExecAdd(583, 16, 162, 264, 715, -33);
        ExecAdd(-230, -446, 997, -838, 561, 555);
        ExecAdd(372, 397, -729, -318, -276, 649);
        ExecAdd(92, 982, -970, -390, -922, 922);
        ExecAdd(-981, 713, -951, -337, -669, 670);
        ExecAdd(-999, 846, -831, -504, 7, -128);
        ExecAdd(455, -954, -370, 682, -510, 45);
        ExecAdd(822, -960, -892, -385, -662, 314);
        ExecAdd(-668, -686, -367, -246, 530, -341);
        ExecAdd(-723, -720, -926, -836, -142, 757);
        ExecAdd(-509, -134, 384, -221, -873, -639);
        ExecAdd(-803, -52, -706, -669, 373, -339);
        ExecAdd(933, 578, 631, -616, 770, 555);
        ExecAdd(741, -564, -33, -605, -576, 275);
        ExecAdd(-715, 445, -233, -730, 734, -704);
        ExecAdd(120, -10, -266, -685, -490, -17);
        ExecAdd(-232, -326, -457, -946, -457, -116);
        ExecAdd(811, 52, 639, 826, -200, 147);
        ExecAdd(-329, 279, 293, 612, 943, 955);
        ExecAdd(-721, -894, -393, -969, -642, 453);
        ExecAdd(-688, -826, -352, -75, 371, 79);
        ExecAdd(-809, -979, 407, 497, 858, -248);
        ExecAdd(-485, -232, -242, -582, -81, 849);
        ExecAdd(141, -106, 123, -152, 806, -596);
        ExecAdd(-428, 57, -992, 811, -192, 478);
        ExecAdd(864, 393, 122, 858, 255, -876);
        ExecAdd(-284, -780, 240, 457, 354, -107);
        ExecAdd(956, 605, -477, 44, 26, -678);
        ExecAdd(86, 710, -533, -815, 439, 327);
        ExecAdd(-906, -626, -834, 763, 426, -48);
        ExecAdd(201, -150, -904, 652, 475, 412);
        ExecAdd(-247, 149, 81, -199, -531, -148);
        ExecAdd(923, -76, -353, 175, -121, -223);
        ExecAdd(427, -674, 453, 472, -410, 585);
        ExecAdd(931, 776, -33, 85, -962, -865);
        ExecAdd(-655, -908, -902, 208, 869, 792);
        ExecAdd(-316, -102, -45, -436, -222, 885);
        ExecAdd(-309, 768, -574, 653, 745, -975);
        ExecAdd(896, 27, -226, 993, 332, 198);
        ExecAdd(323, 655, -89, 260, 240, -902);
        ExecAdd(501, -763, -424, 793, 813, 616);
        ExecAdd(993, 375, -938, -621, 672, -70);
        ExecAdd(-880, -466, -283, 770, -824, 143);
        ExecAdd(63, -283, 886, -142, 879, -116);
        ExecAdd(-964, -50, -521, -42, -306, -161);
        ExecAdd(724, -22, 866, -871, 933, -383);
        ExecAdd(-344, 135, 282, 966, -80, 917);
        ExecAdd(-281, -189, 420, 810, 362, -582);
        ExecAdd(-515, 455, -588, 814, 162, 332);
        ExecAdd(555, -436, -123, -210, 869, -943);
        ExecAdd(589, 577, 232, 286, -554, 876);
        ExecAdd(-773, 127, -58, -171, -452, 125);
        ExecAdd(-428, 575, 906, -232, -10, -224);
        ExecAdd(437, 276, -335, -348, 605, 878);
        ExecAdd(-964, 511, -386, -407, 168, -220);
        ExecAdd(307, 513, 912, -463, -423, -416);
        ExecAdd(-445, 539, 273, 886, -18, 760);
        ExecAdd(-396, -585, -670, 414, 47, 364);
        ExecAdd(143, -506, 754, 906, -971, -203);
        ExecAdd(-544, 472, -180, -541, 869, -465);
        ExecAdd(-779, -15, -396, 890, 972, -220);
        ExecAdd(-430, -564, 503, 182, -119, 456);
        ExecAdd(89, -10, -739, 399, 506, 499);
        ExecAdd(954, 162, -810, -973, 127, 870);
        ExecAdd(890, 952, -225, 158, 828, 237);
        ExecAdd(-868, 952, 349, 465, 574, 750);
        ExecAdd(-915, 369, -975, -596, -395, -134);
        ExecAdd(-135, -601, 575, 582, -667, 640);
        ExecAdd(413, 890, -560, -276, -555, -562);
        ExecAdd(-633, -269, 561, -820, -624, 499);
        ExecAdd(371, -92, -784, -593, 864, -717);
        ExecAdd(-971, 655, -439, 367, 754, -951);
        ExecAdd(172, -347, 36, 279, -247, -402);
        ExecAdd(633, -301, 364, -349, -683, -387);
        ExecAdd(-780, -211, -713, -948, -648, 543);
        ExecAdd(72, 58, 762, -465, -66, 462);
        ExecAdd(78, 502, 781, -832, 713, 836);
        ExecAdd(-431, -64, -484, -392, 208, -343);
        ExecAdd(-64, 101, -29, -860, -329, 844);
        ExecAdd(398, 391, 828, -858, 700, 395);
        ExecAdd(578, -896, -326, -604, 314, 180);
        ExecAdd(97, -321, -695, 185, -357, 852);
        ExecAdd(854, 839, 283, -375, 951, -209);
        ExecAdd(194, 96, -564, -847, 162, 524);
        ExecAdd(-354, 532, 494, 621, 580, 560);
        ExecAdd(419, -678, -450, 926, -5, -924);
        ExecAdd(-661, 905, 519, 621, -143, 394);
        ExecAdd(-573, 268, 296, -562, -291, -319);
        ExecAdd(-211, 266, -196, 158, 564, -183);
        ExecAdd(18, -585, -398, 777, -581, 864);
        ExecAdd(790, -894, -745, -604, -418, 70);
        ExecAdd(848, -339, 150, 773, 11, 851);
        ExecAdd(-954, -809, -53, -20, -648, -304);
        ExecAdd(658, -336, -658, -905, 853, 407);
        ExecAdd(-365, -844, 350, -625, 852, -358);
        ExecAdd(986, -315, -230, -159, 21, 180);
        ExecAdd(-15, 599, 45, -286, -941, 847);
        ExecAdd(-613, -68, 184, 639, -987, 550);
        ExecAdd(334, 675, -56, -861, 923, 340);
        ExecAdd(-848, -596, 960, 231, -28, -34);
        ExecAdd(707, -811, -994, -356, -167, -171);
        ExecAdd(-470, -764, 72, 576, -600, -204);
        ExecAdd(379, 189, -542, -576, 585, 800);
        ExecAdd(440, 540, -445, -563, 379, -334);
        ExecAdd(-155, 64, 514, -288, 853, 106);
        ExecAdd(-304, 751, 481, -520, -708, -694);
        ExecAdd(-709, 132, 594, 126, -844, 63);
        ExecAdd(723, 471, 421, -138, -962, 892);
        ExecAdd(-440, -263, 39, 513, -672, -954);
        ExecAdd(775, 809, -581, 330, 752, -107);
        ExecAdd(-376, -158, 335, -708, -514, 578);
        ExecAdd(-343, -769, 456, -187, 25, 413);
        ExecAdd(548, -877, -172, 300, -500, 928);
        ExecAdd(938, -102, 423, -488, -378, -969);
        ExecAdd(-36, 564, -55, 131, 958, -800);
        ExecAdd(-322, 511, -413, 503, 700, -847);
        ExecAdd(-966, 547, -88, -17, -359, -67);
        ExecAdd(637, -341, -437, -181, 527, -153);
        ExecAdd(-74, 449, -28, 3, 485, 189);
        ExecAdd(-997, 658, -224, -948, 702, -807);
        ExecAdd(-224, 736, -896, 127, -945, -850);
        ExecAdd(-395, -106, 439, -553, -128, 124);
        ExecAdd(-841, -445, -758, -572, -489, 212);
        ExecAdd(633, -327, 13, -512, 952, 771);
        ExecAdd(-940, -171, -6, -46, -923, -425);
        ExecAdd(-142, -442, -817, -998, 843, -695);
        ExecAdd(340, 847, -137, -920, -988, -658);
        ExecAdd(-653, 217, -679, -257, 651, -719);
        ExecAdd(-294, 365, -41, 342, 74, -892);
        ExecAdd(690, -236, -541, 494, 408, -516);
        ExecAdd(180, -807, 225, 790, 494, 59);
        ExecAdd(707, 605, -246, 656, 284, 271);
        ExecAdd(65, 294, 152, 824, 442, -442);
        ExecAdd(-321, 781, -540, 341, 316, 415);
        ExecAdd(420, 371, -2, 545, 995, 248);
        ExecAdd(56, -191, -604, 971, 615, 449);
        ExecAdd(-981, -31, 510, 592, -390, -362);
        ExecAdd(-317, -968, 913, 365, 97, 508);
        ExecAdd(832, 63, -864, -510, 86, 202);
        ExecAdd(-483, 456, -636, 340, -310, 676);
        ExecAdd(981, -847, 751, -508, -962, -31);
        ExecAdd(-157, 99, 73, 797, 63, -172);
        ExecAdd(220, 858, 872, 924, 866, -381);
        ExecAdd(996, -169, 805, 321, -164, 971);
        ExecAdd(896, 11, -625, -973, -782, 76);
        ExecAdd(578, -280, 730, -729, 307, -905);
        ExecAdd(-580, -749, 719, -698, 967, 603);
        ExecAdd(-821, 874, -103, -623, 662, -491);
        ExecAdd(-763, 117, 661, -644, 672, -607);
        ExecAdd(592, 787, -798, -169, -298, 690);
        ExecAdd(296, 644, -526, -762, -447, 665);
        ExecAdd(534, -818, 852, -120, 57, -379);
        ExecAdd(-986, -549, -329, 294, 954, 258);
        ExecAdd(-133, 352, -660, -77, 904, -356);
        ExecAdd(748, 343, 215, 500, 317, -277);
        ExecAdd(311, 7, 910, -896, -809, 795);
        ExecAdd(763, -602, -753, 313, -352, 917);
        ExecAdd(668, 619, -474, -597, -650, 650);
        ExecAdd(-297, 563, -701, -987, 486, -902);
        ExecAdd(-461, -740, -657, 233, -482, -328);
        ExecAdd(-446, -250, -986, -458, -629, 520);
        ExecAdd(542, -49, -327, -469, 257, -947);
        ExecAdd(121, -575, -634, -143, -184, 521);
        ExecAdd(30, 504, 455, -645, -229, -945);
        ExecAdd(-12, -295, 377, 764, 771, 125);
        ExecAdd(-686, -133, 225, -25, -376, -143);
        ExecAdd(-6, -46, 338, 270, -405, -872);
        ExecAdd(-623, -37, 582, 467, 963, 898);
        ExecAdd(-804, 869, -477, 420, -475, -303);
        ExecAdd(94, 41, -842, -193, -768, 720);
        ExecAdd(-656, -918, 415, 645, -357, 460);
        ExecAdd(-47, -486, -911, 468, -608, -686);
        ExecAdd(-158, 251, 419, -394, -655, -895);
        ExecAdd(272, -695, 979, 508, -358, 959);
        ExecAdd(-776, 650, -918, -467, -690, -534);
        ExecAdd(-85, -309, -626, 167, -366, -429);
        ExecAdd(-880, -732, -186, -924, 970, -875);
        ExecAdd(517, 645, -274, 962, -804, 544);
        ExecAdd(721, 402, 104, 640, 478, -499);
        ExecAdd(198, 684, -134, -723, -452, -905);
        ExecAdd(-245, 745, 239, 238, -826, 441);
        ExecAdd(-217, 206, -32, 462, -981, -895);
        ExecAdd(-51, 989, 526, -173, 560, -676);
        ExecAdd(-480, -659, -976, -580, -727, 466);
        ExecAdd(-996, -90, -995, 158, -239, 642);
        ExecAdd(302, 288, -194, -294, 17, 924);
        ExecAdd(-943, 969, -326, 114, -500, 103);
        ExecAdd(-619, 163, 339, -880, 230, 421);
        ExecAdd(-344, -601, -795, 557, 565, -779);
        ExecAdd(590, 345, -129, -202, -125, -58);
        ExecAdd(-777, -195, 159, 674, 775, 411);
        ExecAdd(-939, 312, -665, 810, 121, 855);
        ExecAdd(-971, 254, 712, 815, 452, 581);
        ExecAdd(442, -9, 327, -750, 61, 757);
        ExecAdd(-342, 869, 869, -160, 390, -772);
        ExecAdd(620, 601, 565, -169, -69, -183);
        ExecAdd(-25, 924, -817, 964, 321, -970);
        ExecAdd(-64, -6, -133, 978, 825, -379);
        ExecAdd(601, 436, -24, 98, -115, 940);
        ExecAdd(-97, 502, 614, -574, 922, 513);
        ExecAdd(-125, 262, -946, 695, 99, -220);
        ExecAdd(429, -721, 719, -694, 197, -558);
        ExecAdd(326, 689, -70, -908, -673, 338);
        ExecAdd(-468, -856, -902, -254, -358, 305);
        ExecAdd(-358, 530, 542, 355, -253, -47);
        ExecAdd(-438, -74, -362, 963, 988, 788);
        ExecAdd(137, 717, 467, 622, 319, -380);
        ExecAdd(-86, 310, -336, 851, 918, -288);
        ExecAdd(721, 395, 646, -53, 255, -425);
        ExecAdd(255, 175, 912, 84, -209, 878);
        ExecAdd(-632, -485, -400, -357, 991, -608);
        ExecAdd(235, -559, 992, -297, 857, -591);
        ExecAdd(87, -71, 148, 130, 647, 578);
        ExecAdd(-290, -584, -639, -788, -21, 592);
        ExecAdd(386, 984, 625, -731, -993, -336);
        ExecAdd(-538, 634, -209, -828, -150, -774);
        ExecAdd(-754, -387, 607, -781, 976, -199);
        ExecAdd(412, -798, -664, 295, 709, -537);
        ExecAdd(-412, 932, -880, -232, 561, 852);
        ExecAdd(-656, -358, -198, -964, -433, -848);
        ExecAdd(-762, -668, -632, 186, -673, -11);
        ExecAdd(-876, 237, -282, -312, -83, 682);
        ExecAdd(403, 73, -57, -436, -622, 781);
        ExecAdd(-587, 873, 798, 976, -39, 329);
        ExecAdd(-369, -622, 553, -341, 817, 794);
        ExecAdd(-108, -616, 920, -849, -679, 96);
        ExecAdd(290, -974, 234, 239, -284, -321);
        ExecAdd(-22, 394, -417, -419, 264, 58);
        ExecAdd(-473, -551, 69, 923, 591, -228);
        ExecAdd(-956, 662, -113, 851, -581, -794);
        ExecAdd(-258, -681, 413, -471, -637, -817);
        ExecAdd(-866, 926, 992, -653, -7, 794);
        ExecAdd(556, -350, 602, 917, 831, -610);
        ExecAdd(188, 245, -906, 361, 492, 174);
        ExecAdd(-720, 384, -818, 329, 638, -666);
        ExecAdd(-246, 846, 890, -325, -59, -850);
        ExecAdd(-118, -509, 620, -762, -256, 15);
        ExecAdd(-787, -536, -452, -338, -399, 813);
        ExecAdd(458, 560, 525, -311, -608, -419);
        ExecAdd(494, -811, -825, -127, -812, 894);
        ExecAdd(-801, 890, -629, -860, 574, 925);
        ExecAdd(-709, -193, -213, 138, -410, -403);
        ExecAdd(861, 91, 708, -187, 5, -222);
        ExecAdd(789, 646, 777, 154, 90, -49);
        ExecAdd(-267, -830, -114, 531, 591, -698);
        ExecAdd(-126, -82, 881, -418, 82, 652);
        ExecAdd(-894, 130, -726, -935, 393, -815);
        ExecAdd(-142, 563, 654, 638, -712, -597);
        ExecAdd(-759, 60, -23, 977, 100, -765);
        ExecAdd(-305, 595, -570, -809, 482, 762);
        ExecAdd(-161, -267, 53, 963, 998, -529);
        ExecAdd(-300, -57, 798, 353, 703, 486);
        ExecAdd(-990, 696, -764, 699, -565, 719);
        ExecAdd(-232, -205, 566, 571, 977, 369);
        ExecAdd(740, 865, 151, -817, -204, -293);
        ExecAdd(94, 445, -768, 229, 537, -406);
        ExecAdd(861, 620, 37, -424, -36, 656);
        ExecAdd(390, -369, 952, 733, -464, 569);
        ExecAdd(-482, -604, 959, 554, -705, -626);
        ExecAdd(-396, -615, -991, 108, 272, -723);
        ExecAdd(143, 780, 535, 142, -917, -147);
        ExecAdd(138, -629, -217, -908, 905, 115);
        ExecAdd(915, 103, -852, 64, -468, -642);
        ExecAdd(570, 734, -785, -268, -326, -759);
        ExecAdd(738, 531, -332, 586, -779, 24);
        ExecAdd(870, 440, -217, 473, -383, 415);
        ExecAdd(-296, -333, -330, -142, -924, 950);
        ExecAdd(118, 120, -35, -245, -211, -652);
        ExecAdd(61, 634, 153, -243, 838, 789);
        ExecAdd(726, -582, 210, 105, 983, 537);
        ExecAdd(-313, -323, 758, 234, 29, 848);
        ExecAdd(-847, -172, -593, 733, -56, 617);
        ExecAdd(54, 255, -512, 156, -575, 675);
        ExecAdd(-873, -956, -148, 623, 95, 200);
        ExecAdd(700, -370, 926, 649, -978, 157);
        ExecAdd(-639, -202, 719, 130, 747, 222);
        ExecAdd(194, -33, 955, 943, 505, 114);
        ExecAdd(-226, -790, 28, -930, 827, 783);
        ExecAdd(-392, -74, -28, 714, 218, -612);
        ExecAdd(209, 626, -888, -683, -912, 495);
        ExecAdd(487, 751, 614, 933, 631, 445);
        ExecAdd(-348, -34, -411, -106, 835, 321);
        ExecAdd(-689, 872, -29, -800, 312, -542);
        ExecAdd(-52, 566, 827, 570, -862, -77);
        ExecAdd(471, 992, 309, -402, 389, 912);
        ExecAdd(24, 520, -83, -51, 555, 503);
        ExecAdd(-265, -317, 283, -970, -472, 690);
        ExecAdd(606, 526, 137, 71, -651, 150);
        ExecAdd(217, -518, 663, 66, -605, -331);
        ExecAdd(-562, 232, -76, -503, 205, -323);
        ExecAdd(842, -521, 546, 285, 625, -186);
        ExecAdd(997, -927, 344, 909, -546, 974);
        ExecAdd(-677, 419, 81, 121, -705, 771);
        ExecAdd(719, -379, -944, -797, 784, -155);
        ExecAdd(-378, 286, -317, -797, -111, 964);
        ExecAdd(-288, -573, 784, 80, -532, -646);
        ExecAdd(-77, 407, -248, -797, 769, -816);
        ExecAdd(-24, -637, 287, -858, -927, -333);
        ExecAdd(-902, 37, 894, -823, 141, 684);
        ExecAdd(125, 467, -177, -516, 686, 399);
        ExecAdd(-321, -542, 641, -590, 527, -224);
        ExecAdd(-400, -712, -876, -208, 632, -543);
        ExecAdd(-676, -429, 664, -242, -269, 922);
        ExecAdd(-608, -273, -141, 930, 687, 380);
        ExecAdd(786, -12, 498, 494, 310, 326);
        ExecAdd(-739, -617, 606, -960, 804, 188);
        ExecAdd(384, -368, -243, -350, -459, 31);
        ExecAdd(-550, 397, 320, -868, 328, -279);
        ExecAdd(969, -179, 853, 864, -110, 514);
        ExecAdd(910, 793, 302, -822, -285, 488);
        ExecAdd(-605, -128, 218, -283, -17, -227);
        ExecAdd(16, 324, 667, 708, 750, 3);
        ExecAdd(485, -813, 19, 585, 71, 930);
        ExecAdd(-218, 816, -687, -97, -732, -360);
        ExecAdd(-497, -151, 376, -23, 3, 315);
        ExecAdd(-412, -989, -610, -813, 372, 964);
        ExecAdd(-878, -280, 87, 381, -311, 69);
        ExecAdd(-609, -90, -731, -679, 150, 585);
        ExecAdd(889, 27, -162, 605, 75, -770);
        ExecAdd(448, 617, -988, 0, -103, -504);
        ExecAdd(-800, -537, -69, 627, 608, -668);
        ExecAdd(534, 686, -664, 942, 830, 920);
        ExecAdd(-238, 775, 495, 932, -793, 497);
        ExecAdd(-343, 958, -914, -514, -691, 651);
        ExecAdd(568, -136, 208, 359, 728, 28);
        ExecAdd(286, 912, -794, 683, 556, -102);
        ExecAdd(-638, -629, -484, 445, -64, -497);
        ExecAdd(58, 505, -801, -110, 872, 632);
        ExecAdd(-390, 777, 353, 267, 976, 369);
        ExecAdd(-993, 515, 105, -133, 358, -572);
        ExecAdd(964, 996, 355, -212, -667, 38);
        ExecAdd(-725, -614, -35, 365, 132, -196);
        ExecAdd(237, -536, -416, -302, 312, 477);
        ExecAdd(-664, 574, -210, 224, 48, -925);
        ExecAdd(869, -261, -256, -240, -3, -698);
        ExecAdd(712, 385, 32, -34, 916, -315);
        ExecAdd(895, -409, -100, -346, 728, -624);
        ExecAdd(-806, 327, -450, 889, -781, -939);
        ExecAdd(-586, -403, 698, 318, -939, 899);
        ExecAdd(557, -57, -920, 659, 333, -51);
        ExecAdd(-441, 232, -918, -205, 246, 1);
        ExecAdd(783, 167, -797, -595, 245, -736);
        ExecAdd(-36, -531, -486, -426, -813, -160);
        ExecAdd(777, -843, 817, 313, -228, -572);
        ExecAdd(735, 866, -309, -564, -81, 190);
        ExecAdd(-413, 645, 101, 719, -719, 218);
        ExecAdd(-83, 164, 767, 796, -430, -459);
        ExecAdd(122, 779, -15, -295, -96, -892);
        ExecAdd(462, 379, 70, 548, 834, -312);
        ExecAdd(-630, -534, 124, 187, -737, 114);
        ExecAdd(-299, -604, 318, -591, 936, 826);
        ExecAdd(-879, 218, -642, -483, -318, -866);
        ExecAdd(-691, 62, -658, 761, -895, -854);
        ExecAdd(-822, 493, 687, 569, 910, -202);
        ExecAdd(-223, 784, 304, -5, 541, 925);
        ExecAdd(-914, 541, 737, -662, -662, -195);
        ExecAdd(-622, 615, 414, 358, 881, -878);
        ExecAdd(339, 745, -268, -968, -280, -227);
        ExecAdd(-364, 855, 148, -709, -827, 472);
        ExecAdd(-890, -532, -41, 664, -612, 577);
        ExecAdd(-702, -859, 971, -722, -660, -920);
        ExecAdd(-539, -605, 737, 149, 973, -802);
        ExecAdd(800, 42, -448, -811, 152, 511);
        ExecAdd(-933, 377, -110, -105, -374, -937);
        ExecAdd(-766, 152, 482, 120, -308, 390);
        ExecAdd(-568, 775, -292, 899, 732, 890);
        ExecAdd(-177, -317, -502, -259, 328, -511);
        ExecAdd(612, -696, -574, -660, 132, 31);
        ExecAdd(-119, 563, -805, -864, 179, -672);
        ExecAdd(425, -627, 183, -331, 839, 318);
        ExecAdd(-711, -976, -749, 152, -916, 261);
        ExecAdd(181, -63, 497, 211, 262, 406);
        ExecAdd(-537, 700, -859, -765, -928, 77);
        ExecAdd(892, 832, 231, -749, -82, 613);
        ExecAdd(816, 216, -642, -216, -669, -912);
        ExecAdd(-6, 624, -937, -370, -344, 268);
        ExecAdd(737, -710, -869, 983, -324, -274);
        ExecAdd(565, 952, -547, -158, 374, -444);
        ExecAdd(51, -683, 645, -845, 515, 636);
        ExecAdd(-953, -631, 114, -377, -764, -144);
        ExecAdd(-8, 470, -242, -399, -675, -730);
        ExecAdd(-540, 689, -20, 47, -607, 590);
        ExecAdd(-329, -710, -779, 942, -388, 979);
        ExecAdd(123, 829, 674, 122, 203, 563);
        ExecAdd(46, 782, 396, -33, 386, 610);
        ExecAdd(872, -846, -523, -122, -55, -190);
        ExecAdd(388, -994, -525, 974, 127, 596);
        ExecAdd(781, -680, 796, -34, -959, -62);
        ExecAdd(-749, 173, 200, -384, -745, -446);
        ExecAdd(379, 618, 136, -250, -224, 970);
        ExecAdd(-58, 240, -921, -760, -901, -626);
        ExecAdd(366, -185, 565, -100, 515, 688);
        ExecAdd(489, 999, -893, -263, -637, 816);
        ExecAdd(838, -496, -316, -513, 419, 479);
        ExecAdd(107, 676, -15, 882, 98, -397);
        ExecAdd(-999, 941, -903, -424, 670, -325);
        ExecAdd(171, -979, 835, 178, 169, -984);
        ExecAdd(-609, -607, 378, -681, 184, 402);
        ExecAdd(-316, 903, -575, -800, 224, 983);
        ExecAdd(591, -18, -460, 551, -167, 918);
        ExecAdd(-756, 405, -117, 441, 163, -320);
        ExecAdd(456, 24, 6, 881, -836, -539);
        ExecAdd(-489, -585, 915, 651, -892, -382);
        ExecAdd(-177, -122, 73, -711, -386, 591);
        ExecAdd(181, 724, 530, 686, -131, 241);
        ExecAdd(737, 288, 886, 216, 233, 33);
        ExecAdd(-548, -386, -749, -153, -85, -982);
        ExecAdd(-835, 227, 904, 160, -99, 25);
        ExecAdd(-9, -42, -162, 728, 840, -963);
        ExecAdd(217, -763, 870, 771, 47, -846);
        ExecAdd(-595, 808, -491, 556, 337, -900);
        ExecAdd(-134, 281, -724, 441, -134, 708);
        ExecAdd(-789, -508, 651, -962, 661, 315);
        ExecAdd(-839, -923, 339, 402, 41, -487);
        ExecAdd(300, -790, 48, 703, -398, -811);
        ExecAdd(955, -51, 462, -685, 960, -717);
        ExecAdd(910, -880, 592, -255, -51, -776);
        ExecAdd(-885, 169, -793, 368, -565, 458);
        ExecAdd(-905, 940, -492, -630, -535, -988);
        ExecAdd(245, 797, 763, 869, -82, 550);
        ExecAdd(-310, 38, -933, -367, -650, 824);
        ExecAdd(-95, 32, -83, 337, 226, 990);
        ExecAdd(-218, -975, -191, -208, -785, -293);
        ExecAdd(-672, -953, 517, -901, -247, 465);
        ExecAdd(681, -148, 261, -857, 544, -923);
        ExecAdd(640, 341, 446, -618, 195, 769);
        ExecAdd(384, 398, -846, 365, 671, 815);
        ExecAdd(578, 576, -911, 907, 762, -859);
        ExecAdd(548, -428, 144, -630, -759, -146);
        ExecAdd(710, -73, -700, 983, -97, -889);
        ExecAdd(-46, 898, -973, -362, -817, -717);
        ExecAdd(151, -81, -125, -900, -478, -154);
        ExecAdd(483, 615, -537, -932, 181, -68);
        ExecAdd(786, -223, 518, 25, -306, -12);
        ExecAdd(-422, 268, -809, -683, 635, 468);
        ExecAdd(983, -734, -694, -608, -110, 4);
        ExecAdd(-786, -196, 749, -354, 137, -8);
        ExecAdd(-181, 36, 668, -200, 691, -973);
        ExecAdd(-629, -838, 692, -736, 437, -871);
        ExecAdd(-208, -536, -159, -596, 8, 197);
        ExecAdd(-3, 370, -686, 170, 913, -376);
        ExecAdd(44, -998, -149, -993, -200, 512);
        ExecAdd(-519, 136, 859, 497, 536, 434);
        ExecAdd(77, -985, 972, -340, -705, -837);
        ExecAdd(-381, 947, 250, 360, 344, 322);
        ExecAdd(-26, 131, 699, 750, 707, 384);
        ExecAdd(-914, 655, 299, 193, 406, 955);
        ExecAdd(-883, -921, 220, 595, -546, 794);
        ExecAdd(-599, 577, -569, -404, -704, 489);
        ExecAdd(-594, -963, -624, -460, 880, -760);
        ExecAdd(-603, 88, -99, 681, 55, -328);
        ExecAdd(976, 472, 139, -453, -531, -860);
        ExecAdd(192, -290, 513, -89, 666, 432);
        ExecAdd(417, 487, 575, 293, 567, -668);
        ExecAdd(655, 711, -162, 449, -980, 972);
        ExecAdd(-505, 664, -685, -239, 603, -592);
        ExecAdd(-625, -802, -67, 996, 384, -636);
        ExecAdd(365, -593, 522, -666, -200, -431);
        ExecAdd(-868, 708, 560, -860, -630, -355);
        ExecAdd(-702, 785, -637, -611, -597, 960);
        ExecAdd(-137, -696, -93, -803, 408, 406);
        ExecAdd(891, -123, -26, -609, -610, 518);
        ExecAdd(133, -832, -198, 555, 708, -110);
        ExecAdd(791, 617, -69, 487, 696, 315);
        ExecAdd(-900, 694, -565, 517, -269, -416);
        ExecAdd(914, 135, -781, 600, -71, -600);
        ExecAdd(991, -915, -422, -351, -837, 313);
        ExecAdd(-840, -398, -302, 21, 590, 146);
        ExecAdd(62, -558, -702, -384, -625, 831);
        ExecAdd(-363, -426, -924, -496, 792, -908);
        ExecAdd(73, 361, -817, -466, 400, 922);
        ExecAdd(-626, -164, -626, 860, -524, 286);
        ExecAdd(255, 26, -944, 809, -606, 986);
        ExecAdd(-457, -256, -103, 50, -867, -871);
        ExecAdd(-223, 803, 196, 480, 612, 136);
        ExecAdd(-820, -928, 700, 780, -977, 721);
        ExecAdd(717, 332, 53, -933, -128, 793);
        ExecAdd(-602, -648, 562, 593, 890, 702);
        ExecAdd(-469, -875, -527, 911, -475, -222);
        ExecAdd(110, -281, -552, -536, -816, 596);
        ExecAdd(-981, 654, 413, -981, -75, -95);
        ExecAdd(-754, -742, -515, 894, -220, -344);
        ExecAdd(795, -52, 156, 408, -603, 76);
        ExecAdd(474, -157, 423, -499, -807, -791);
        ExecAdd(260, 688, 40, -52, 702, -122);
        ExecAdd(-584, -517, -390, -881, 302, -504);
        ExecAdd(61, 797, 665, 708, 14, 668);
        ExecAdd(366, 166, 458, -614, 564, -983);
        ExecAdd(72, 539, -378, 796, 381, -824);
        ExecAdd(-485, 201, -588, 842, 736, 379);
        ExecAdd(-149, -894, -298, 705, -303, -406);
        ExecAdd(660, -935, -580, 521, 93, 633);
        ExecAdd(-382, -282, -375, -841, -828, 171);
        ExecAdd(-567, 743, -100, 43, 144, 122);
        ExecAdd(-281, -786, -749, -551, 296, 304);
        ExecAdd(11, -426, -792, 212, 857, -175);
        ExecAdd(594, 143, -699, 289, 315, 137);
        ExecAdd(341, 596, -390, 107, -631, -804);
        ExecAdd(-751, -636, -424, -854, 193, 651);
        ExecAdd(-145, 384, 749, 675, -786, 517);
        ExecAdd(224, -865, -323, 96, -916, 258);
        ExecAdd(-309, 403, -388, 826, 35, -270);
        ExecAdd(-942, 709, 222, 158, -699, -103);
        ExecAdd(-589, 842, -997, 29, -195, -210);
        ExecAdd(264, 426, 566, 145, -217, 623);
        ExecAdd(217, 965, 507, -601, -453, 507);
        ExecAdd(-206, 307, -982, 4, 64, -292);
        ExecAdd(676, -49, -38, -701, 550, 883);
        ExecAdd(5, -850, -438, 659, 745, -773);
        ExecAdd(933, 238, -574, -570, 91, -33);
        ExecAdd(-866, 121, -928, 358, 459, -843);
        ExecAdd(-568, -631, -352, -580, -349, 189);
        ExecAdd(-737, 849, -963, -486, -662, 970);
        ExecAdd(135, 334, -967, -71, -365, -792);
        ExecAdd(789, 21, -227, 51, 990, -275);
        ExecAdd(240, 412, -886, 230, 591, 256);
        ExecAdd(-609, 472, -853, -754, 959, 661);
        ExecAdd(401, 521, 521, 314, 929, 982);
        ExecAdd(-499, 784, -208, 71, -302, 296);
        ExecAdd(-557, -948, -553, -526, -864, 793);
        ExecAdd(270, -626, 828, 44, 37, 14);
        ExecAdd(-412, 224, 617, -593, 502, 699);
        ExecAdd(41, -908, 81, 562, -849, 163);
        ExecAdd(165, 917, 761, -197, 331, -341);
        ExecAdd(-687, 314, 799, 755, -969, 648);
        ExecAdd(-164, 25, 578, 439, -334, -576);
        ExecAdd(213, 535, 874, -177, -551, 24);
        ExecAdd(-689, 291, -795, -225, -496, -125);
        ExecAdd(465, 461, 558, -118, -568, -909);
        ExecAdd(567, 660, -810, 46, -485, 878);
        ExecAdd(-147, 606, 685, -690, -774, 984);
        ExecAdd(568, -886, -43, 854, -738, 616);
        ExecAdd(-800, 386, -614, 585, 764, -226);
        ExecAdd(-518, 23, -225, -732, -79, 440);
        ExecAdd(-173, -291, -689, 636, 642, -447);
        ExecAdd(-598, -16, 227, 410, 496, 211);
        ExecAdd(-474, -930, -656, -321, -420, 36);
        ExecAdd(-435, 165, -819, 555, 540, 144);
        ExecAdd(-969, 149, 828, 568, 394, 648);
        ExecAdd(65, -848, 257, 720, -625, -851);
        ExecAdd(981, 899, 275, 635, 465, -877);
        ExecAdd(80, 290, 792, 760, -191, -321);
        ExecAdd(-605, -858, 594, 33, 706, 593);
        ExecAdd(585, -472, 318, -35, 354, -927);
        ExecAdd(-365, 664, 803, 581, -965, -814);
        ExecAdd(-427, -238, -480, 146, -55, -606);
        ExecAdd(879, -193, 250, -890, 336, 117);
        ExecAdd(-226, -322, -286, -765, -836, -218);
        ExecAdd(-913, 564, -667, -698, 937, 283);
        ExecAdd(872, -901, 810, -623, -52, -709);
        ExecAdd(473, 171, 717, 38, -429, -644);
        ExecAdd(225, 824, -219, -475, -180, 234);
        ExecAdd(-530, -797, -948, 238, 851, -623);
        ExecAdd(85, 975, -363, 529, 598, 28);
        ExecAdd(-799, 166, -804, 210, -769, 851);
        ExecAdd(-687, -158, 885, 736, -381, -461);
        ExecAdd(447, 592, 928, -514, -515, -661);
        ExecAdd(-399, -777, -493, 80, -544, -78);
        ExecAdd(-884, 631, 171, -825, -333, 551);
        ExecAdd(191, 268, -577, 676, 137, -33);
        ExecAdd(212, -853, 709, 798, 583, -56);
        ExecAdd(-908, -172, -540, -84, -135, -56);
        ExecAdd(303, 311, 406, -360, -240, 811);
        ExecAdd(798, -708, 824, 59, 234, -57);
        ExecAdd(491, 693, -74, 585, -85, 877);
        ExecAdd(509, -65, -936, 329, -51, 722);
        ExecAdd(-122, 858, -52, 467, -77, -609);
        ExecAdd(850, 760, 547, -495, -953, -952);
        ExecAdd(-460, -541, 890, 910, 286, 724);
        ExecAdd(-914, 843, -579, -983, -387, -460);
        ExecAdd(989, -171, -877, -326, -899, 458);
        ExecAdd(846, 175, -915, 540, -1000, -982);
        ExecAdd(-852, -920, -306, 496, 530, -18);
        ExecAdd(338, -991, 160, 85, -455, -661);
        ExecAdd(-186, -311, -460, -563, -231, -414);
        ExecAdd(-932, -302, 959, 597, 793, 748);
        ExecAdd(-366, -402, -788, -279, 514, 53);
        ExecAdd(-940, -956, 447, -956, 211, -285);
        ExecAdd(564, 806, -911, -914, 934, 754);
        ExecAdd(575, -858, -277, 15, 409, -714);
        ExecAdd(848, 462, 100, -381, 135, 242);
        ExecAdd(330, 718, -24, -190, 860, -78);
        ExecAdd(479, 458, 941, 108, -866, -653);
        ExecAdd(212, 980, 962, -962, 115, 841);
        ExecAdd(-827, -474, -206, 881, 323, 765);
        ExecAdd(506, -45, -30, -293, 524, -133);
        ExecAdd(832, -173, 547, -852, -561, -842);
        ExecAdd(-397, -661, -708, 819, -545, -228);
        ExecAdd(521, 51, -489, 852, 36, -258);
        ExecAdd(227, -164, 189, 465, -987, -882);
        ExecAdd(-73, -997, 641, -995, 449, -615);
        ExecAdd(151, -995, -638, 415, 257, -400);
        ExecAdd(-663, -297, -748, 537, -734, 198);
        ExecAdd(-585, -401, -81, -782, -80, -105);
        ExecAdd(99, -21, 238, -365, -704, -368);
        ExecAdd(45, 416, 849, -211, -371, -1);
        ExecAdd(-404, -443, 795, -406, 36, -933);
        ExecAdd(272, -363, 981, -491, -380, 77);
        ExecAdd(713, -342, -366, -849, 643, 911);
        ExecAdd(-748, 671, -537, 813, 961, -200);
        ExecAdd(-194, -909, 703, -662, -601, 188);
        ExecAdd(281, 500, 724, 286, 267, 197);
        ExecAdd(-832, 847, -595, 820, -316, 637);
        ExecAdd(520, 521, -54, 261, 923, -10);
        ExecAdd(4, -808, -682, -258, 441, -695);
        ExecAdd(-793, -107, -969, 905, 798, 446);
        ExecAdd(-108, -739, -590, 69, -855, -365);
        ExecAdd(380, -623, -930, 817, 468, 713);
        ExecAdd(759, -849, -236, 433, -723, -931);
        ExecAdd(95, -320, -686, 124, -69, -329);
        ExecAdd(-655, 518, -210, -523, 284, -866);
        ExecAdd(144, 303, 639, 70, -171, 269);
        ExecAdd(173, -333, 947, -304, 55, 40);
        ExecAdd(274, 878, -482, -888, -835, 375);
        ExecAdd(-982, -854, -36, -218, -114, -230);
        ExecAdd(905, -979, 488, -485, -479, 114);
        ExecAdd(877, -157, 553, -530, -47, -321);
        ExecAdd(350, 664, -881, 442, -220, -284);
        ExecAdd(434, -423, -365, 878, -726, 584);
        ExecAdd(535, 909, -517, -447, -660, -141);
        ExecAdd(-966, 191, 50, 353, 182, -642);
        ExecAdd(-785, -634, 123, -907, -162, 511);
        ExecAdd(146, -850, -214, 814, -704, 25);
        ExecAdd(692, 1, 521, 492, -637, 274);
        ExecAdd(-662, -372, -313, 597, 983, -647);
        ExecAdd(-962, -526, 68, -549, -819, 231);
        ExecAdd(740, -890, -318, 797, -666, 948);
        ExecAdd(-190, -12, -468, -455, 948, 284);
        ExecAdd(16, 478, -506, -888, 628, -154);
        ExecAdd(272, 630, -976, 308, 433, 3);
        ExecAdd(-169, -391, -132, 189, 302, -388);
        ExecAdd(109, -784, 474, -167, -265, -31);
        ExecAdd(-177, -532, 283, 464, 421, -73);
        ExecAdd(650, 635, 592, -138, 1, -387);
        ExecAdd(-932, 703, -827, -492, -355, 686);
        ExecAdd(586, -311, 340, -618, 645, -434);
        ExecAdd(-951, 736, 647, -127, -303, 590);
        ExecAdd(188, 444, 903, 718, -931, 500);
        ExecAdd(-872, -642, -296, -571, 337, 241);
        ExecAdd(23, 65, 152, 125, 880, 470);
        ExecAdd(512, 823, -42, 217, 823, -263);
        ExecAdd(180, -831, -380, 886, 607, 762);
        ExecAdd(722, 443, -149, -216, -115, 759);
        ExecAdd(-19, 660, -36, 901, 923, 231);
        ExecAdd(562, -322, -626, -968, 194, -825);
        ExecAdd(204, -920, 938, 784, 362, 150);
        ExecAdd(-410, -266, -715, 559, -672, 124);
        ExecAdd(-198, 446, -140, 454, -461, -447);
        ExecAdd(83, -346, 830, -493, -759, -382);
        ExecAdd(-881, 601, 581, 234, -134, -925);
        ExecAdd(-494, 914, -42, 899, 235, 629);
        ExecAdd(-390, 50, 956, 437, 774, -700);
        ExecAdd(-514, 514, 44, -512, -576, -313);
        ExecAdd(63, -688, 808, -534, -570, -399);
        ExecAdd(-726, 572, -896, 102, -294, -28);
        ExecAdd(-688, 757, 401, 406, 955, -511);
        ExecAdd(-283, 423, -485, 480, -767, 908);
        ExecAdd(-541, 952, -594, 116, -854, 451);
        ExecAdd(-273, -796, 236, 625, -626, 257);
        ExecAdd(-407, -493, 373, 826, -309, 297);
        ExecAdd(-750, 955, -476, 641, -809, 713);
        ExecAdd(8, 415, 695, 226, -111, 2);
        ExecAdd(733, 209, 152, -920, 401, 995);
        ExecAdd(921, -103, -919, 66, 871, -947);
        ExecAdd(-907, 89, -869, -214, 851, -559);
        ExecAdd(-307, 748, 524, -755, 314, -711);
        ExecAdd(188, 897, -72, -763, 482, 103);
        ExecAdd(545, -821, -232, -596, -334, -754);
        ExecAdd(-217, -788, -820, 388, -200, -662);
        ExecAdd(779, 160, -723, -975, -142, -998);
        ExecAdd(-978, -519, -78, -981, 842, 904);
        ExecAdd(-504, -736, -295, 21, -472, -482);
        ExecAdd(391, 115, -705, 574, 652, -446);
        ExecAdd(813, -988, 865, 830, -263, 487);
        ExecAdd(194, 80, 774, -493, -761, -872);
        ExecAdd(-415, -284, -803, 7, -810, 670);
        ExecAdd(-484, -4, 881, -872, 55, -852);
        ExecAdd(-379, 822, -266, 324, -48, 748);
        ExecAdd(-304, -278, 406, -60, 959, -89);
        ExecAdd(404, 756, 577, -643, -332, 658);
        ExecAdd(291, 460, 125, 491, -312, 83);
        ExecAdd(311, -734, -141, 582, 282, -557);
        ExecAdd(-450, -661, -981, 710, -177, 794);
        ExecAdd(328, 264, -787, 971, -743, -407);
        ExecAdd(-622, 518, 993, -241, -738, 229);
        ExecAdd(273, -826, -254, -917, -710, -111);
        ExecAdd(809, 770, 96, 368, -818, 725);
        ExecAdd(-488, 773, 502, -342, 534, 745);
        ExecAdd(-28, -414, 236, -315, -484, 363);
        ExecAdd(179, -466, -566, 713, -683, 56);
        ExecAdd(560, -240, -597, 619, 916, -940);
        ExecAdd(893, 473, 872, -868, -642, -461);
        ExecAdd(799, 489, 383, -321, -776, -833);
        ExecAdd(980, 490, -508, 764, -512, -426);
        ExecAdd(917, 961, -16, -675, 440, 559);
        ExecAdd(-812, 212, 784, -987, -132, 554);
        ExecAdd(-886, 454, 747, 806, 190, 231);
        ExecAdd(910, 341, 21, -66, 708, 725);
        ExecAdd(29, 929, -831, -494, -303, 389);
        ExecAdd(-103, 492, -271, -174, -515, 529);
        ExecAdd(-292, 119, 419, 788, 247, -951);
        ExecAdd(483, 543, -347, -673, 664, -549);
        ExecAdd(-926, -871, -437, 337, 162, -877);
        ExecAdd(299, 472, -771, 5, -88, -643);
        ExecAdd(-103, 525, -725, -998, 264, 22);
        ExecAdd(-505, 708, 550, -545, 823, 347);
        ExecAdd(-738, 931, 59, 147, -156, -259);
        ExecAdd(456, 968, -162, 889, 132, -911);
        ExecAdd(535, 120, 968, -517, -864, -541);
        ExecAdd(24, -395, -593, -766, -565, -332);
        ExecAdd(834, 611, 825, -576, 280, 629);
        ExecAdd(211, -548, 140, -278, -592, 929);
        ExecAdd(-999, -240, -63, -78, 793, 573);
        ExecAdd(-573, 160, 450, 987, 529, 322);
        ExecAdd(63, 353, 315, -187, -461, 577);
        ExecAdd(189, -950, -247, 656, 289, 241);
        ExecAdd(209, -297, 397, 664, -805, 484);
        ExecAdd(-655, 452, 435, -556, 917, 874);
        ExecAdd(253, -756, 262, -888, -778, -214);
        ExecAdd(793, -451, 323, -251, -401, -458);
        ExecAdd(-396, 619, -651, -287, -668, -781);
        ExecAdd(698, 720, -349, 742, -807, 546);
        ExecAdd(738, 280, 680, 279, -540, 858);
        ExecAdd(-789, 387, 530, -36, -551, -491);
        ExecAdd(162, 579, -427, -272, 228, 710);
        ExecAdd(689, 356, 917, -580, 729, 217);
        ExecAdd(-115, -638, 866, 424, -82, -194);
        ExecAdd(411, -338, -917, 172, 227, -29);
        ExecAdd(-612, 63, 630, -976, -64, -204);
        ExecAdd(-200, 911, 583, -571, 682, -579);
        ExecAdd(91, 298, 396, -183, 788, -955);
        ExecAdd(141, -873, -277, 149, -396, 916);
        ExecAdd(321, 958, -136, 573, 541, -777);
        ExecAdd(797, -909, -469, -877, 988, -653);
        ExecAdd(784, -198, 129, 883, -203, 399);
        ExecAdd(-68, -810, 223, -423, -467, -512);
        ExecAdd(531, -445, -603, -997, -841, 641);
        ExecAdd(-274, -242, 174, 261, -636, -158);
        ExecAdd(-574, 494, -796, -798, -798, 99);
        ExecAdd(95, -82, -613, -954, -753, 986);
        ExecAdd(-883, -448, -864, -401, 938, -392);
        ExecAdd(913, 930, -542, -988, 310, 410);
        ExecAdd(506, -99, 43, 512, 790, -222);
        ExecAdd(724, 31, 49, -950, 260, -134);
        ExecAdd(-287, -947, -234, -700, 56, 588);
        ExecAdd(-33, 782, -144, 948, 105, -791);
        ExecAdd(548, -546, -652, -293, 881, -520);
        ExecAdd(691, -91, 76, 991, -631, 742);
        ExecAdd(-520, -429, -244, -296, 724, -48);
        ExecAdd(778, 646, 377, 50, -188, 56);
        ExecAdd(-895, -507, -898, -165, -674, 652);
        ExecAdd(654, 584, -634, 177, -349, -620);
        ExecAdd(114, -980, 355, 62, 182, 975);
        ExecAdd(516, 9, -442, -298, 274, -579);
        ExecAdd(-238, 262, -431, -896, 506, -850);
        ExecAdd(47, 748, 846, 821, -537, -293);
        ExecAdd(839, 726, 593, 285, -297, 840);
        ExecAdd(634, -486, 468, -304, -887, -567);
        ExecAdd(-864, 914, 296, -124, 335, 233);
        ExecAdd(88, -253, -523, -956, -554, 803);
        ExecAdd(-587, 417, 281, -62, -409, -363);
        ExecAdd(-136, -39, -292, -768, -264, 876);
        ExecAdd(-127, 506, -891, -331, -744, -430);
        ExecAdd(778, 584, -750, -129, -479, -94);
        ExecAdd(-876, -771, -987, -757, 180, -641);
        ExecAdd(-777, -694, 411, -87, 329, 190);
        ExecAdd(-347, -999, -882, 158, -754, 232);
        ExecAdd(-105, 918, 188, 237, -110, -591);
        ExecAdd(-209, 703, -838, 77, 838, 909);
        ExecAdd(-995, -339, -762, 750, 860, 472);
        ExecAdd(185, 271, -289, 173, 811, -300);
        ExecAdd(2, 65, -656, -22, 36, -139);
        ExecAdd(765, -210, 883, 974, 961, -905);
        ExecAdd(-212, 295, -615, -840, 77, 474);
        ExecAdd(211, -910, -440, 703, -11, 859);
        ExecAdd(-559, -4, -196, 841, -277, 969);
        ExecAdd(-73, -159, -887, 126, 978, -371);
        ExecAdd(-569, 633, -423, -33, 512, -393);
        ExecAdd(503, 143, -383, -109, -649, -998);
        ExecAdd(-663, 339, -317, -523, -2, 596);
        ExecAdd(690, -380, 570, 378, -652, 132);
        ExecAdd(72, -744, -930, 399, -525, 935);
        ExecAdd(865, -983, 115, 37, 995, 826);
        ExecAdd(594, -621, -872, 443, 188, -241);
        ExecAdd(-1000, 291, 754, 234, -435, -869);
        ExecAdd(-868, 901, 654, -907, 59, 181);
        ExecAdd(-868, -793, -431, 596, -446, -564);
        ExecAdd(900, -944, -680, -796, 902, -366);
        ExecAdd(331, 430, 943, 853, -851, -942);
        ExecAdd(315, -538, -354, -909, 139, 721);
        ExecAdd(170, -884, -225, -818, -808, -657);
        ExecAdd(-279, -34, -533, -871, -972, 552);
        ExecAdd(691, -986, -800, -950, 654, -747);
        ExecAdd(603, 988, 899, 841, -630, 591);
        ExecAdd(876, -949, 809, 562, 602, -536);
        ExecAdd(-693, 363, -189, 495, 738, -1000);
        ExecAdd(-383, 431, -633, 297, 665, 959);
        ExecAdd(-740, 686, -207, -803, 188, -520);
        ExecAdd(-820, 226, 31, -339, 10, 121);
        ExecAdd(-312, -844, 624, -516, 483, 621);
        ExecAdd(-822, -529, 69, -278, 800, 328);
        ExecAdd(834, -82, -759, 420, 811, -264);
        ExecAdd(-960, -240, -921, 561, 173, 46);
        ExecAdd(-324, 909, -790, -814, -2, -785);
        ExecAdd(976, 334, -290, -891, 704, -581);
        ExecAdd(150, -798, 689, -823, 237, -639);
        ExecAdd(-551, -320, 876, -502, -622, -628);
        ExecAdd(-136, 845, 904, 595, -702, -261);
        ExecAdd(-857, -377, -522, -101, -943, -805);
        ExecAdd(-682, -787, -888, -459, -752, -985);
        ExecAdd(-571, -81, 623, -133, 447, 643);
        ExecAdd(-375, -158, 72, -387, -324, -696);
        ExecAdd(-660, -650, 340, 188, 569, 526);
        ExecAdd(727, -218, 16, -7, -595, -988);
        ExecAdd(-966, -684, 802, -783, -272, -194);
        ExecAdd(115, -566, -888, 47, 712, 180);
        ExecAdd(-237, -69, 45, -272, 981, -812);
        ExecAdd(48, 897, 439, 417, 50, 325);
        ExecAdd(348, 616, 180, 254, 104, -784);
        ExecAdd(-730, 811, -548, 612, -736, 790);
        ExecAdd(138, -810, 123, 930, 65, 865);
        ExecAdd(-768, -299, -49, -895, -692, -418);
        ExecAdd(487, -531, 802, -159, -12, 634);
        ExecAdd(808, -179, 552, -73, 470, 717);
        ExecAdd(720, -644, 886, -141, 625, 144);
        ExecAdd(-485, -505, -347, -244, -916, 66);
        ExecAdd(600, -565, 995, -5, 324, 227);
        ExecAdd(-771, -35, 904, -482, 753, -303);
        ExecAdd(-701, 65, 426, -763, -504, -479);
        ExecAdd(409, 733, -823, 475, 64, 718);
        ExecAdd(865, 975, 368, 893, -413, -433);
        ExecAdd(812, -597, -970, 819, 813, 624);
        ExecAdd(193, -642, -381, -560, 545, 398);
        ExecAdd(711, 28, -316, 771, 717, -865);
        ExecAdd(-509, 462, 809, -136, 786, 635);
        ExecAdd(618, -49, 484, 169, 635, 547);
        ExecAdd(-747, 685, -882, -496, -332, 82);
        ExecAdd(-501, -851, 870, 563, 290, 570);
        ExecAdd(-279, -829, -509, 397, 457, 816);
        ExecAdd(-508, 80, 850, -188, 483, -326);
        ExecAdd(860, -100, 360, 119, -205, 787);
        ExecAdd(-870, 21, -39, -827, -185, 932);
        ExecAdd(826, 284, -136, -866, -330, -97);
        ExecAdd(-944, -82, 745, 899, -97, 365);
        ExecAdd(929, 262, 564, 632, -115, 632);
        ExecAdd(244, -276, 713, 330, -897, -214);
        ExecAdd(-890, -109, 664, 876, -974, -907);
        ExecAdd(716, 249, 816, 489, 723, 141);
        ExecAdd(-96, -560, -272, 45, -70, 645);
        ExecAdd(762, -503, 414, -828, -254, -646);
        ExecAdd(909, -13, 903, -422, -344, -10);
        ExecAdd(658, -486, 743, 545, 50, 674);
        ExecAdd(-241, 507, -367, 18, -48, -241);
        ExecAdd(886, -268, 884, -762, 120, -486);
        ExecAdd(-412, -528, 879, -647, 223, -393);
        ExecAdd(851, 810, 234, 937, -726, 797);
        ExecAdd(-999, 942, 839, -134, -996, -189);
        ExecAdd(100, 979, -527, -521, 378, 800);
        ExecAdd(544, -844, -832, -530, -77, -641);
        ExecAdd(43, 889, 31, 442, -934, -503);
        ExecAdd(-330, -370, -309, -439, 173, 547);
        ExecAdd(169, 945, 62, -753, -542, -597);
        ExecAdd(208, 751, -372, -647, -520, 70);
        ExecAdd(765, -840, 907, -257, 379, 918);
        ExecAdd(334, -135, -689, 730, -427, 618);
        ExecAdd(137, -508, 66, -695, 78, 169);
        ExecAdd(-962, -123, 400, -417, 151, 969);
        ExecAdd(328, 689, 666, 427, -555, -642);
        ExecAdd(-907, 343, 605, -341, -647, 582);
        ExecAdd(-667, -363, -571, 818, -265, -399);
        ExecAdd(525, -938, 904, 898, 725, 692);
        ExecAdd(-176, -802, -858, -9, 780, 275);
        ExecAdd(580, 170, -740, 287, 691, -97);
        ExecAdd(365, 557, -375, 361, -288, 859);
        ExecAdd(193, 737, 842, -808, 520, 282);
        ExecAdd(-871, 65, -799, 836, 179, -720);
        ExecAdd(958, -144, 744, -789, 797, -48);
        ExecAdd(122, 582, 662, 912, 68, 757);
        ExecAdd(595, 241, -801, 513, 388, 186);
        ExecAdd(-103, -677, -259, -731, -281, -857);
        ExecAdd(921, 319, -696, 683, -88, -997);
        ExecAdd(775, 200, 78, 858, 648, 768);
        ExecAdd(316, 821, -763, 68, -290, -741);
        ExecAdd(564, 664, 691, 504, 760, 787);
        ExecAdd(694, -119, 973, -385, 309, -760);
        ExecAdd(777, -947, -57, 990, 74, 19);
        ExecAdd(971, 626, -496, -781, -602, -239);
        ExecAdd(-651, 433, 11, -339, 939, 294);
        ExecAdd(-965, -728, 560, 569, -708, -247);

        int Answer = 0;
        foreach (int[] EachArr in mSankakuList) {
            if (IsNaihou(EachArr)) Answer++;
        }
        Console.WriteLine("Answer={0}", Answer);
    }

    //三角形が原点を内包しているかを返す
    static bool IsNaihou(int[] pIntArr)
    {
        int X1 = pIntArr[0];
        int Y1 = pIntArr[1];
        int X2 = pIntArr[2];
        int Y2 = pIntArr[3];
        int X3 = pIntArr[4];
        int Y3 = pIntArr[5];

        long Menseki1 = DeriveMenseki(X1, Y1, X2, Y2, X3, Y3);
        long Menseki2 = DeriveMenseki(0, 0, X2, Y2, X3, Y3);
        long Menseki3 = DeriveMenseki(X1, Y1, 0, 0, X3, Y3);
        long Menseki4 = DeriveMenseki(X1, Y1, X2, Y2, 0, 0);

        return Menseki1 == Menseki2 + Menseki3 + Menseki4;
    }

    //三角形の3点の座標を引数として面積の2倍を返す
    static long DeriveMenseki(int pX1, int pY1, int pX2, int pY2, int pX3, int pY3)
    {
        int Vect12X = pX2 - pX1;
        int Vect12Y = pY2 - pY1;

        int Vect13X = pX3 - pX1;
        int Vect13Y = pY3 - pY1;

        return Math.Abs(Vect12X * Vect13Y - Vect12Y * Vect13X);
    }
}


実行結果

Answer=228


解説

三角形OABの面積を求める公式
S = 1/2 * 絶対値(ベクトルOAのX成分 * ベクトルOBのY成分 - ベクトルOAのY成分 * ベクトルOBのX成分)
を使ってます。