static void sse4a_test (void) { int i; int fail = 0; long long out; for (i = 0; i < 5; i += 1) { out = sse4a_test_extrq (vals_in[i]); fail += chk(out, vals_out[i]); out = sse4a_test_extrqi (vals_in[i]); fail += chk(out, vals_out[i]); } if (fail != 0) abort (); }
int main(int pArgc, char **pArgs) { char lLineBuffer[2048]; if(pArgc < 2) { printf("Content-type: text/plain%c%c", 10, 10); printf("Error"); } else { const char *lLocation = strchr(pArgs[1], '^'); if(lLocation != NULL) { lLocation++; } else { lLocation = pArgs[1]; } // Return the location string printf("Location: %s%c%c", lLocation, 10, 10); // Retrieve time char lTimeBuffer[256]; time_t lTimer; lTimer = time(NULL); struct tm *lTime = localtime(&lTimer); strcpy(lTimeBuffer, "error"); strftime(lTimeBuffer, sizeof(lTimeBuffer), "%y-%m-%d_%H:%M:%S", lTime); // Log the request char *lPathEnd = strrchr(pArgs[0], '/'); if(lPathEnd != NULL) { *lPathEnd = 0; chdir(pArgs[0]); } sprintf(lLineBuffer, "* %s %s %s %s %s\n", lTimeBuffer, pArgs[1], chk(getenv("REMOTE_ADDR")), chk(getenv("REMOTE_HOST")), chk(getenv("REMOTE_USER")) ); // output the string FILE *lFile = fopen(LOG_FILE, "a"); if(lFile != NULL) { fprintf(lFile, lLineBuffer); fclose(lFile); } } return 0; }
static snd_pcm_t* init_playback_device(const char* devname) { snd_pcm_t *playback_handle; snd_pcm_hw_params_t *hw_params; chk(snd_pcm_open(&playback_handle, devname, SND_PCM_STREAM_PLAYBACK,0), "cannot open audio device (%s)\n"); chk(snd_pcm_hw_params_malloc(&hw_params), "cannot allocate hardware parameter structure (%s)\n"); chk(snd_pcm_hw_params_any(playback_handle, hw_params), "cannot initialize hardware parameter structure (%s)\n"); chk(snd_pcm_hw_params_set_access(playback_handle, hw_params, SND_PCM_ACCESS_RW_INTERLEAVED), "cannot set access type (%s)\n"); chk(snd_pcm_hw_params_set_format(playback_handle, hw_params, FORMAT), "cannot set sample format (%s)\n"); unsigned rate = BITRATE; chk(snd_pcm_hw_params_set_rate_near(playback_handle, hw_params, &rate, 0), "cannot set sample rate (%s)\n"); chk(snd_pcm_hw_params_set_channels(playback_handle, hw_params, NUMCHANNELS),"cannot set channel count (%s)\n"); chk(snd_pcm_hw_params(playback_handle, hw_params), "cannot set parameters (%s)\n"); snd_pcm_hw_params_free(hw_params); chk(snd_pcm_prepare(playback_handle), "cannot prepare audio interface for use (%s)\n"); return playback_handle; }
int UDPGetMyAddress (void) { char buf [256]; int i = 0; char *s,*s2,*ns; if (!have_empty_address ()) return 0; if (!((i=FindArg ("-udp")) && (s=pszArgList [i+1]) && (*s=='=' || *s=='+' || *s=='@'))) s = NULL; if (gethostname (buf,sizeof (buf))) FAIL ("Error getting my hostname"); if (!(queryhost (buf))) FAIL ("Querying my own hostname \"%s\"",buf); if (s) while (*s == '@') { portshift (++s); while (isdigit (*s)) s++; } memset (ipx_MyAddress, 0, 4); memcpy (ipx_MyAddress + 4, qhbuf, 6); udpBasePort [gameStates.multi.bServer] += (short) ntohs (*(unsigned short *) (qhbuf + 4)); if (!s || (s && !*s)) addiflist (); else { struct sockaddr_in *sin; if (*s=='+') addiflist (); s++; for (;;) { while (isspace (*s)) s++; if (!*s) break; for (s2=s;*s2 && *s2!=',';s2++) ; chk (ns = (char *) D2_ALLOC (s2-s+1)); memcpy (ns,s,s2-s); ns [s2-s]='\0'; if (!queryhost (ns)) //msg ("Ignored IP interface-destination \"%s\" as being invalid",ns); D2_FREE (ns); chkbroadsize (); sin=broads + broadnum++; sin->sin_family=AF_INET; memcpy (&sin->sin_addr,qhbuf+0,4); sin->sin_port=htons (( (short)ntohs (* (unsigned short *) (qhbuf+4)))+UDP_BASEPORT); s=s2+ (*s2==','); } } unifyiflist (); return 0; }
int chk(int m,int c) { int i,a=0; if(m>max) return ans; for(i=2;i<=m-c;i++) { if(m%i==0) {a=1; break;} } if(a==0||m==2) {ans+=m;} chk(m+1,2); }
static void test_write(LSMDB_env *const env) { uint8_t k[KEY_SIZE]; uint8_t d[DATA_SIZE] = {}; for(int i = 0; i < WRITES / TXN_SIZE; ++i) { LSMDB_txn *txn; chk( lsmdb_txn_begin(env, NULL, MDB_RDWR, &txn) ); for(int j = 0; j < TXN_SIZE; ++j) { GENKEY(k); MDB_val key = { sizeof(k), &k }; MDB_val data = { sizeof(d), &d }; chk( lsmdb_put(txn, &key, &data, PUT_FLAGS) ); } chk( lsmdb_autocompact(txn) ); lsmdb_txn_commit(txn); } }
void T::tmemb() { chk( v, 4, "T::tmemb -- v" ); chk( S::v, 4, "T::tmemb -- S::v" ); chk( ::v, 1, "T::tmemb -- ::v" ); chk( sv.v, 2, "T::tmemb -- sv.v" ); chk( sv.S::v, 2, "T::tmemb -- sv.S::v" ); chk( tv.T::v, 4, "T::tmemb -- sv.T::v" ); chk( tu.u, 5, "T::tmemb -- tu.u" ); }
void KisTransformMaskTest::testMaskWithOffset() { TestUtil::ExternalImageChecker chk("mask_with_offset", "transform_mask_updates"); QRect refRect(0,0,512,512); QRect fillRect(400,400,100,100); TestUtil::MaskParent p(refRect); p.layer->paintDevice()->fill(fillRect, KoColor(Qt::red, p.layer->colorSpace())); KisPaintLayerSP player = new KisPaintLayer(p.image, "bg", OPACITY_OPAQUE_U8, p.image->colorSpace()); p.image->addNode(player, p.image->root(), KisNodeSP()); KisTransformMaskSP mask1 = new KisTransformMask(); p.image->addNode(mask1, p.layer); mask1->setName("mask1"); p.layer->setDirty(refRect); p.image->waitForDone(); chk.checkImage(p.image, "00_initial_layer_update"); QTest::qWait(4000); p.image->waitForDone(); chk.checkImage(p.image, "00X_initial_layer_update"); QTransform transform; transform = QTransform::fromTranslate(-150, 0); mask1->setTransformParams(KisTransformMaskParamsInterfaceSP( new KisDumbTransformMaskParams(transform))); p.layer->setDirty(refRect); p.image->waitForDone(); chk.checkImage(p.image, "01_mask1_moved_layer_update"); QTest::qWait(4000); p.image->waitForDone(); chk.checkImage(p.image, "01X_mask1_moved_layer_update"); mask1->setY(-150); mask1->setDirty(refRect); p.image->waitForDone(); chk.checkImage(p.image, "02_mask1_y_offset"); QTest::qWait(4000); p.image->waitForDone(); chk.checkImage(p.image, "02X_mask1_y_offset"); QVERIFY(chk.testPassed()); }
static void sse4a_test (void) { int i; int fail = 0; long long out; for (i = 0; i < 5; i += 1) { out = sse4a_test_insert (vals_in1[i], vals_in2[i]); fail += chk(out, vals_out[i]); out = sse4a_test_inserti (vals_in1[i], vals_in2[i]); fail += chk(out, vals_out[i]); } if (fail != 0) abort (); exit (0); }
STDAPI StopService(void) { HRESULT hr; COMInitializer initializer; COMPointer<IUnknown> pUnknown; COMPointer<ICOMAdminCatalog2> pCatalog; int count = 0; chk(QGAProviderFind(QGAProviderCount, (void *)&count)); if (count) { chk(CoCreateInstance(CLSID_COMAdminCatalog, NULL, CLSCTX_INPROC_SERVER, IID_IUnknown, (void **)pUnknown.replace())); chk(pUnknown->QueryInterface(IID_ICOMAdminCatalog2, (void **)pCatalog.replace())); chk(pCatalog->ShutdownApplication(_bstr_t(QGA_PROVIDER_LNAME))); } out: return hr; }
int main(){ scanf("%s", str); int len = strlen(str); int ret = len; for(int i = 0; str[i]; i++){ if(chk(i, len-1)){ ret = i; break; } } printf("%d\n", ret+len); }
void GestorChk::doIt() throw ( Zero::Excepcion ) { const ListaAst<Obj> &objetos = getParser()->getAST()->objetos; // Chk preliminates if ( objetos.size() == 0 ) { throw Zero::ESintaxis( "sin objetos que compilar" ); } if ( getParser()->getObjPpal() == NULL ) { throw Zero::ESemantico( "objeto principal no encontrado" ); } // Chk objetos for(size_t i = 0; i < objetos.size(); ++i) { const Obj * obj = objetos[ i ]; chk( obj, NULL, chksObj ); // Chk attrs const ListaAst<Atr> &atrs = obj->atributos; for(size_t j = 0; j < atrs.size(); ++j) { chk( atrs[ j ], obj, chksAtr ); } // Chk mths const ListaAst<Mth> &mths = obj->metodos; for(size_t j = 0; j < mths.size(); ++j) { const Mth * mth = mths[ j ]; chk( mth, obj, chksMth ); // Chk instrucciones for(size_t k = 0; k < mth->instrucciones.size(); ++k) { chk( mth->instrucciones[ k ], mth, chksInstr ); } } } }
void KisImageTest::testMergeDown() { FlattenTestImage p; TestUtil::ExternalImageChecker img("flatten", "imagetest"); TestUtil::ExternalImageChecker chk("mergedown_simple", "imagetest"); { QCOMPARE(p.layer5->compositeOpId(), COMPOSITE_OVER); QCOMPARE(p.layer5->alphaChannelDisabled(), true); KisLayerSP newLayer = p.image->mergeDown(p.layer5, KisMetaData::MergeStrategyRegistry::instance()->get("Drop")); p.image->waitForDone(); QVERIFY(img.checkDevice(p.image->projection(), p.image, "00_initial")); QVERIFY(chk.checkDevice(newLayer->projection(), p.image, "01_layer5_layerproj")); QCOMPARE(newLayer->compositeOpId(), COMPOSITE_OVER); QCOMPARE(newLayer->alphaChannelDisabled(), false); } { QCOMPARE(p.layer2->compositeOpId(), COMPOSITE_ADD); QCOMPARE(p.layer2->alphaChannelDisabled(), false); KisLayerSP newLayer = p.image->mergeDown(p.layer2, KisMetaData::MergeStrategyRegistry::instance()->get("Drop")); p.image->waitForDone(); QVERIFY(img.checkDevice(p.image->projection(), p.image, "00_initial")); QVERIFY(chk.checkDevice(newLayer->projection(), p.image, "02_layer2_layerproj")); QCOMPARE(newLayer->compositeOpId(), COMPOSITE_OVER); QCOMPARE(newLayer->exactBounds(), QRect(100, 100, 213, 217)); QCOMPARE(newLayer->alphaChannelDisabled(), false); } { QCOMPARE(p.group1->compositeOpId(), COMPOSITE_ADD); QCOMPARE(p.group1->alphaChannelDisabled(), false); KisLayerSP newLayer = p.image->mergeDown(p.group1, KisMetaData::MergeStrategyRegistry::instance()->get("Drop")); p.image->waitForDone(); QVERIFY(img.checkDevice(p.image->projection(), p.image, "00_initial")); QVERIFY(chk.checkDevice(newLayer->projection(), p.image, "03_group1_mergedown_layerproj")); QCOMPARE(newLayer->compositeOpId(), COMPOSITE_OVER); QCOMPARE(newLayer->exactBounds(), QRect(100, 100, 500, 217)); QCOMPARE(newLayer->alphaChannelDisabled(), false); } }
static LONG WINAPI handle(HWND win, UINT msg, WPARAM w, LPARAM l) { LONG r; switch (msg) { #define HANDLE(x) case WM_##x: cvReport("han " #x); r = HANDLE_WM_##x(win, w, l, on##x); break HANDLE(TIMER); HANDLE(PAINT); HANDLE(MOUSEMOVE); HANDLE(SIZE); HANDLE(KEYDOWN); HANDLE(SYSKEYDOWN); HANDLE(SYSKEYUP); HANDLE(CHAR); HANDLE(KEYUP); HANDLE(LBUTTONDOWN); HANDLE(RBUTTONDOWN); HANDLE(MBUTTONDOWN); HANDLE(LBUTTONUP); HANDLE(RBUTTONUP); HANDLE(MBUTTONUP); HANDLE(MOUSEWHEEL); HANDLE(DESTROY); HANDLE(CLOSE); #undef HANDLE case WM_IME_STARTCOMPOSITION: { HIMC imc = ImmGetContext(win); COMPOSITIONFORM cf; cf.dwStyle = CFS_POINT; cf.ptCurrentPos.x = cvMouseX(); cf.ptCurrentPos.y = cvMouseY(); ImmSetCompositionWindow(imc, &cf); ImmReleaseContext(win, imc); r = 1; } break; case WM_IME_COMPOSITION: { if(l & GCS_RESULTSTR){ unsigned short str[4096]; unsigned len, i; HIMC imc = ImmGetContext(win); HDC dc = GetDC(win); len = ImmGetCompositionString(imc, GCS_RESULTSTR, str, sizeof(str)); len >>= 1; for (i = 0; i < len; i++) wgot(win, CVE_UNICODE, str[i], 0); ImmReleaseContext(win, imc); chk(ReleaseDC(win, dc)); } r = 0; } break; default: r = 0; }
void KisImageTest::testMergeMultiple() { FlattenTestImage p; TestUtil::ExternalImageChecker img("flatten", "imagetest"); TestUtil::ExternalImageChecker chk("mergemultiple", "imagetest"); { QList<KisNodeSP> selectedNodes; selectedNodes << p.layer2 << p.group1 << p.layer6; { KisNodeSP newLayer = p.image->mergeMultipleLayers(selectedNodes, 0); p.image->waitForDone(); QVERIFY(img.checkDevice(p.image->projection(), p.image, "00_initial")); QVERIFY(chk.checkDevice(newLayer->projection(), p.image, "01_layer8_layerproj")); QCOMPARE(newLayer->compositeOpId(), COMPOSITE_OVER); QCOMPARE(newLayer->exactBounds(), QRect(50, 100, 550, 250)); } } p.p.undoStore->undo(); p.image->waitForDone(); // Test reversed order, the result must be the same { QList<KisNodeSP> selectedNodes; selectedNodes << p.layer6 << p.group1 << p.layer2; { KisNodeSP newLayer = p.image->mergeMultipleLayers(selectedNodes, 0); p.image->waitForDone(); QVERIFY(img.checkDevice(p.image->projection(), p.image, "00_initial")); QVERIFY(chk.checkDevice(newLayer->projection(), p.image, "01_layer8_layerproj")); QCOMPARE(newLayer->compositeOpId(), COMPOSITE_OVER); QCOMPARE(newLayer->exactBounds(), QRect(50, 100, 550, 250)); } } }
int main(int argc, char *argv[]) { int w, h; char in[256], out[256]; if (argc < 3) { usage(argv[0]); return EXIT_FAILURE; } strncpy(in, argv[argc - 1], sizeof(in) - 1); strncpy(out, argv[argc - 2], sizeof(out) - 1); chk(get_parameters(¶meters, argc, (char **)(argv))); print_parameters(¶meters); chk(scene = scene_load(in)); w = scene->camera.image_width; h = scene->camera.image_height; chk(image = hdr_image_new(w, h)); context = ir_context_new(parameters.num_paths, parameters.max_path_length, parameters.tmin, parameters.dist_clamp); ir_distribute(context, scene); chk(accumulate_mt(parameters.num_threads)); ir_render_vpls(context, image, scene, parameters.vpl_radius); ir_context_delete(&context); hdr_image_save(image, out); scene_delete(&scene); hdr_image_delete(&image); return EXIT_SUCCESS; error: scene_delete(&scene); hdr_image_delete(&image); return 1; }
int main() { int n,i,m; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%s",dat); m=chk(); if(m==0) printf("Y\n"); else printf("N\n"); } return 0; }
/** * Perform tests on the printf implementation. * &returns: Success flag. */ bool test_printf(void) { bool suc = true; { char *str; str = mprintf("hi %d there %u %zu", 10, 20, 24749814879); suc &= chk(strcmp(str, "hi 10 there 20 24749814879") == 0, "printf0"); free(str); } return suc; }
void S::smemb() { chk( v, 2, "S::smemb -- v" ); chk( S::v, 2, "S::smemb -- S::v" ); chk( ::v, 1, "S::smemb -- ::v" ); chk( sv.v, 2, "S::smemb -- sv.v" ); chk( sv.S::v, 2, "S::smemb -- sv.S::v" ); chk( tu.u, 5, "S::smemb -- tu.u" ); }
void KisTransformMaskTest::testMaskOnCloneLayerWithOffset() { TestUtil::ExternalImageChecker chk("clone_offset_simple", "transform_mask_updates"); QRect refRect(0,0,512,512); QRect fillRect(400,400,100,100); TestUtil::MaskParent p(refRect); p.layer->paintDevice()->fill(fillRect, KoColor(Qt::red, p.layer->colorSpace())); KisPaintLayerSP player = new KisPaintLayer(p.image, "bg", OPACITY_OPAQUE_U8, p.image->colorSpace()); p.image->addNode(player, p.image->root(), KisNodeSP()); KisCloneLayerSP clone = new KisCloneLayer(p.layer, p.image, "clone", OPACITY_OPAQUE_U8); p.image->addNode(clone, p.image->root()); KisTransformMaskSP mask = new KisTransformMask(); p.image->addNode(mask, clone); QTransform transform(1, 0, 0, 0, 1, 0, 0, -150, 1); mask->setTransformParams(KisTransformMaskParamsInterfaceSP( new KisDumbTransformMaskParams(transform))); p.layer->setDirty(refRect); p.image->waitForDone(); chk.checkImage(p.image, "0_initial"); clone->setX(-300); clone->setDirty(); p.image->waitForDone(); chk.checkImage(p.image, "1_after_offset"); mask->setDirty(); p.image->waitForDone(); chk.checkImage(p.image, "2_after_offset_dirty_mask"); QTest::qWait(4000); chk.checkImage(p.image, "3_delayed_regeneration"); KisPaintDeviceSP previewDevice = mask->buildPreviewDevice(); chk.checkDevice(previewDevice, p.image, "4_preview_device"); QVERIFY(chk.testPassed()); QVERIFY(doPartialTests("clone_offset_complex", p.image, p.layer, clone, mask)); }
int chk(int n,int k, int cup) { int mari = 0; if (cup >= k) { mari = cup / k; n += mari; cup += mari; cup -= k*mari; } else if (cup < k) return n; chk(n, k, cup); }
Permutation::Permutation(Rcpp::IntegerVector &vv) : d_perm(vv), n(vv.size()) { int *vpt = vv.begin(); std::vector<bool> chk(n); std::fill(chk.begin(), chk.end(), false); for (int i = 0; i < n; i++) { int vi = vpt[i]; if (vi < 0 || n <= vi) throw runtime_error("permutation elements must be in [0,n)"); if (chk[vi]) throw runtime_error("permutation is not a permutation"); chk[vi] = true; } }
static int onPAINT(HWND win) { int handled = s_win == win; if (handled) { // PAINTSTRUCT ps; // HDC dc = BeginPaint(win, &ps); HDC dc = GetDC(win); cvReport("Painting"); // chk(wglMakeCurrent(s_dc, s_rc)); cvInject(CVE_UPDATE, 0, 0); chk(SwapBuffers(dc)); ReleaseDC(win, dc); // chk(EndPaint(win, &ps)); } return handled; }
vector<pair<T,int> >fac(T a){ if(a==1)return vector<pair<T,int> >(); if(chk(a))return vector<pair<T,int> >(1,make_pair(a,1)); T b=a; while((b=rho(b,double(rand())/ RAND_MAX*(a-1)))==a); vector<pair<T,int> >u=fac(b),v=fac(a/b),r; for(int pu=0,pv=0;pu<u.size()||pv<v.size();){ if(pu==u.size())r.push_back(v[pv++]); else if(pv==v.size())r.push_back(u[pu++]); else if(u[pu].first==v[pv].first) r.push_back(make_pair(u[pu].first, (u[pu].second+v[pv].second))),++pu,++pv; else if(u[pu].first>v[pv].first)r.push_back(v[pv++]); else r.push_back(u[pu++]);} return r;}
void KisImageTest::testFlattenLayer() { FlattenTestImage p; TestUtil::ExternalImageChecker chk("flatten", "imagetest"); { QCOMPARE(p.layer2->compositeOpId(), COMPOSITE_ADD); KisLayerSP newLayer = p.image->flattenLayer(p.layer2); p.image->waitForDone(); QVERIFY(chk.checkDevice(p.image->projection(), p.image, "00_initial")); QVERIFY(chk.checkDevice(newLayer->projection(), p.image, "01_layer2_layerproj")); QCOMPARE(newLayer->compositeOpId(), COMPOSITE_OVER); } { QCOMPARE(p.group1->compositeOpId(), COMPOSITE_ADD); KisLayerSP newLayer = p.image->flattenLayer(p.group1); p.image->waitForDone(); QVERIFY(chk.checkDevice(p.image->projection(), p.image, "00_initial")); QVERIFY(chk.checkDevice(newLayer->projection(), p.image, "02_group1_layerproj")); QCOMPARE(newLayer->compositeOpId(), COMPOSITE_ADD); QCOMPARE(newLayer->exactBounds(), QRect(400, 100, 200, 100)); } { QCOMPARE(p.layer5->compositeOpId(), COMPOSITE_OVER); QCOMPARE(p.layer5->alphaChannelDisabled(), true); KisLayerSP newLayer = p.image->flattenLayer(p.layer5); p.image->waitForDone(); QVERIFY(chk.checkDevice(p.image->projection(), p.image, "00_initial")); QVERIFY(chk.checkDevice(newLayer->projection(), p.image, "03_layer5_layerproj")); QCOMPARE(newLayer->compositeOpId(), COMPOSITE_OVER); QCOMPARE(newLayer->exactBounds(), QRect(50, 50, 100, 100)); QCOMPARE(newLayer->alphaChannelDisabled(), true); } }
static int addiflist (void) { unsigned j; struct sockaddr_in *sinp, *sinmp; D2_FREE (broads); /* This code is for Mac OS X, whose BSD layer does bizarre things with variable-length * structures when calling ioctl using SIOCGIFCOUNT. Or any other architecture that * has this call, for that matter, since it's much simpler than the other code below. */ struct ifaddrs *ifap, *ifa; if (getifaddrs (&ifap) != 0) FAIL ("Getting list of interface addresses: %m"); // First loop to count the number of valid addresses and allocate enough memory j = 0; for (ifa = ifap; ifa != NULL; ifa = ifa->ifa_next) { // Only count the address if it meets our criteria. if (ifa->ifa_flags & IF_NOTFLAGS || !((ifa->ifa_flags & IF_REQFLAGS) && (ifa->ifa_addr->sa_family == AF_INET))) continue; j++; } broadsize = j; chk (broads = (sockaddr_in *) D2_ALLOC (j * sizeof (*broads))); // Second loop to copy the addresses j = 0; for (ifa = ifap; ifa != NULL; ifa = ifa->ifa_next) { // Only copy the address if it meets our criteria. if ((ifa->ifa_flags & IF_NOTFLAGS) || !((ifa->ifa_flags & IF_REQFLAGS) && (ifa->ifa_addr->sa_family == AF_INET))) continue; j++; sinp = (struct sockaddr_in *) ifa->ifa_broadaddr; sinmp = (struct sockaddr_in *) ifa->ifa_dstaddr; // Code common to both getifaddrs () and ioctl () approach broads [j] = *sinp; broads [j].sin_port = UDP_BASEPORT; //FIXME: No possibility to override from cmdline broadmasks [j] = *sinmp; j++; } freeifaddrs (ifap); broadnum = j; masksnum = j; return 0; }
int go(int n, int x, int y) { if (n == 8) { N++; return 0; } for (; y<8; y++) { for (; x<8; x++) if (chk(x, y) == 0) { t[x + 8*y]++; go(n+1, x, y); t[x + 8*y]--; } x = 0; } }
/** transform a BSON array into a vector of BSONElements. we match array # positions with their vector position, and ignore any non-numeric fields. */ vector<BSONElement> BSONElement::Array() const { chk(mongo::Array); vector<BSONElement> v; BSONObjIterator i(Obj()); while( i.more() ) { BSONElement e = i.next(); const char *f = e.fieldName(); try { unsigned u = stringToNum(f); assert( u < 4096 ); if( u >= v.size() ) v.resize(u+1); v[u] = e; } catch(unsigned) { } } return v; }
int main(){ // do you mind telling us in the problem statement // that there is more than one test case per input while(~scanf("%d%d",&N,&M)){ V.clear(); for(int i=1;i<=N;++i){ scanf("%d",W+i); V.emplace_back(W[i]); } std::sort(all(V)); V.erase(std::unique(all(V)),V.end()); for(int i=1;i<=N;++i) W[i]=std::lower_bound(all(V),W[i])-V.begin(); for(int i=1;i<=N;++i) adj[i].clear(); for(int i=1,a,b;i<N;++i){ scanf("%d%d",&a,&b); adj[a].emplace_back(b); adj[b].emplace_back(a); } dfs(1,-1); build(); for(int i=0,a,b,l;i<M;++i){ scanf("%d%d",&a,&b); l=lca(a,b); if(ein[b]<ein[a]) std::swap(a,b); if(a==l||b==l) qrys[i]={ein[a],ein[b],-1,i}; else qrys[i]={eout[a],ein[b],l,i}; } std::sort(qrys,qrys+M); vis.reset(); memset(cnt,0,sizeof cnt); res=0; chk(tour[1]); for(int i=0,l=1,r=1;i<M;++i){ while(r<qrys[i].r) chk(tour[++r]); while(l>qrys[i].l) chk(tour[--l]); while(r>qrys[i].r) chk(tour[r--]); while(l<qrys[i].l) chk(tour[l++]); if(~qrys[i].lca) chk(qrys[i].lca); ans[qrys[i].i]=res; if(~qrys[i].lca) chk(qrys[i].lca); } for(int i=0;i<M;printf("%d\n",ans[i++])); } }
/* Acquire group or user name by SID */ static HRESULT getNameByStringSID( const wchar_t *sid, LPWSTR buffer, LPDWORD bufferLen) { HRESULT hr = S_OK; PSID psid = NULL; SID_NAME_USE groupType; DWORD domainNameLen = BUFFER_SIZE; wchar_t domainName[BUFFER_SIZE]; chk(ConvertStringSidToSidW(sid, &psid)); LookupAccountSidW(NULL, psid, buffer, bufferLen, domainName, &domainNameLen, &groupType); hr = HRESULT_FROM_WIN32(GetLastError()); LocalFree(psid); out: return hr; }