void test_sum(int line, int left, int right, int sum){ if(line < 0 || line >= n) return; if(left <= 0 || right > 1 + (line << 1)) return; sum += s[line][right] - s[line][left - 1]; if(sum > max_sum) max_sum = sum; if(!(left & 1)) test_sum(line - 1, left - 2, right, sum); else test_sum(line + 1, left, right + 2, sum); }
int main(void) { freopen("input.txt", "r", stdin); for (int i = 0; i < 401; ++i) s[i][0] = 0; for (int cnum = 0;1;) { scanf("%d", &n); if(n == 0) break; max_sum = -2000000000; for (int i = 0, l; i < n; ++i) { l = (i*2) + 1; for (int j = 1; j <= l; ++j) { scanf("%d", &s[i][j]); s[i][j] += s[i][j - 1]; } } for (int i = 0, l; i < n; ++i) { l = (i << 1) + 1; for (int j = 1; j <= l; ++j) test_sum(i, j, j, 0); } printf("%d. %d\n", ++cnum, max_sum); } return 0; }
void addn_inv(int N,int a,int width, quantum_reg *reg){//inverse of add a to register reg (mod N) quantum_cnot(2*width+1,2*width,reg);//Attention! cnot gate instead of not, as in description madd_inv((1<<(width))-a,N-a,width,reg);//madd 2^K+(N-a)-N = 2^K-a quantum_swaptheleads(width,reg); test_sum(a,width,reg); }
int main (void) { mpfr_prec_t p; unsigned long n; tests_start_mpfr (); check_special (); test_sort (1764, 1026); for (p = 2 ; p < 444 ; p += 17) for (n = 2 ; n < 1026 ; n += 42 + p) test_sum (p, n); tests_end_mpfr (); return 0; }
int main(void){ for(int i = 0; i < 401; ++i) s[i][0] = 0; for(int cnum = 0; scanf("%d", &n) == 1 && n; ){ max_sum = 1 << 31; for(int i = 0, l; i < n; ++i){ l = (i << 1) + 1; for(int j = 1; j <= l; ++j){ scanf("%d", &s[i][j]); s[i][j] += s[i][j - 1]; } } for(int i = 0, l; i < n; ++i){ l = (i << 1) + 1; for(int j = 1; j <= l; ++j) test_sum(i, j, j, 0); } printf("%d. %d\n", ++cnum, max_sum); } return 0; }
void test(){ test_sum(); test_max(); test_min(); test_second_max(); test_second_min(); test_equal(); test_occurences(); test_countNegatives(); test_indexOf(); test_clearWith(); test_insertElement(); test_removeElement(); test_copy(); test_merge(); test_reverse(); test_sort(); printf("All passed!!!!"); }
/* * Test sum and difference of triples */ static void test_add_diff(dl_vartable_t *table) { uint32_t i, j, n; dl_triple_t test; dl_triple_t test2; poly_buffer_t buffer; init_poly_buffer(&buffer); q_init(&test.constant); q_init(&test2.constant); n = table->nvars; for (i=0; i<n; i++) { for (j=0; j<n; j++) { printf("Testing sum: var!%"PRIu32" + var!%"PRIu32":\n", i, j); printf("--> var!%"PRIu32" : ", i); print_dl_triple(dl_var_triple(table, i)); printf("\n"); printf("--> var!%"PRIu32" : ", j); print_dl_triple(dl_var_triple(table, j)); printf("\n"); test_sum_buffer(table, &buffer, i, j, &test2); test_sum(table, i, j, &test); printf("\n"); printf("Testing diff: var!%"PRIu32" - var!%"PRIu32":\n", i, j); printf("--> var!%"PRIu32" : ", i); print_dl_triple(dl_var_triple(table, i)); printf("\n"); printf("--> var!%"PRIu32" : ", j); print_dl_triple(dl_var_triple(table, j)); printf("\n"); test_diff_buffer(table, &buffer, i, j, &test2); test_diff(table, i, j, &test); printf("\n"); } } q_clear(&test.constant); q_clear(&test2.constant); delete_poly_buffer(&buffer); }
void Checker::get_request() { char ch; std::cout << "What kind of operation would you like? (S)um, (D)iff, (M)ult" << std::endl; do ch = getchar(); while (ch != 'S' && ch != 'D' && ch != 'M'); std::string s1, s2, s3; std::cout << "Input first number" << std::endl; getline(std::cin, s1); getline(std::cin, s1); std::cout << "Input second number" << std::endl; getline(std::cin, s2); std::cout << "Input result" << std::endl; getline(std::cin, s3); switch (ch) { case 'S': test_sum(BigInteger(s1), BigInteger(s2), BigInteger(s3)); break; case 'D': test_diff(BigInteger(s1), BigInteger(s2), BigInteger(s3)); break; case 'M': test_mult(BigInteger(s1), BigInteger(s2), BigInteger(s3)); break; } }
int main (int argc, char **argv) { test_init (argc, argv, xmlrpc_entries); if (!uri) { apache_init (); uri = default_uri; } srand (time (NULL)); session = soup_test_session_new (SOUP_TYPE_SESSION_SYNC, NULL); if (!test_sum ()) errors++; if (!test_countBools ()) errors++; if (!test_md5sum ()) errors++; if (!test_dateChange ()) errors++; if (!test_echo ()) errors++; if (!test_fault_malformed ()) errors++; if (!test_fault_method ()) errors++; if (!test_fault_args ()) errors++; soup_test_session_abort_unref (session); test_cleanup (); return errors != 0; }
void main() { test_sum(); printf("Tests pass!\nEverything is ok!\n"); }
void test_vectorization_logic() { #ifdef EIGEN_VECTORIZE #ifdef EIGEN_DEFAULT_TO_ROW_MAJOR VERIFY(test_assign(Vector4f(),Vector4f(), LinearVectorization,CompleteUnrolling)); VERIFY(test_assign(Vector4f(),Vector4f()+Vector4f(), LinearVectorization,CompleteUnrolling)); VERIFY(test_assign(Vector4f(),Vector4f().cwise() * Vector4f(), LinearVectorization,CompleteUnrolling)); #else VERIFY(test_assign(Vector4f(),Vector4f(), InnerVectorization,CompleteUnrolling)); VERIFY(test_assign(Vector4f(),Vector4f()+Vector4f(), InnerVectorization,CompleteUnrolling)); VERIFY(test_assign(Vector4f(),Vector4f().cwise() * Vector4f(), InnerVectorization,CompleteUnrolling)); #endif VERIFY(test_assign(Matrix4f(),Matrix4f(), InnerVectorization,CompleteUnrolling)); VERIFY(test_assign(Matrix4f(),Matrix4f()+Matrix4f(), InnerVectorization,CompleteUnrolling)); VERIFY(test_assign(Matrix4f(),Matrix4f().cwise() * Matrix4f(), InnerVectorization,CompleteUnrolling)); VERIFY(test_assign(Matrix<float,16,16>(),Matrix<float,16,16>()+Matrix<float,16,16>(), InnerVectorization,InnerUnrolling)); VERIFY(test_assign(Matrix<float,16,16,DontAlign>(),Matrix<float,16,16>()+Matrix<float,16,16>(), NoVectorization,InnerUnrolling)); VERIFY(test_assign(Matrix<float,6,2>(),Matrix<float,6,2>().cwise() / Matrix<float,6,2>(), LinearVectorization,CompleteUnrolling)); VERIFY(test_assign(Matrix<float,17,17>(),Matrix<float,17,17>()+Matrix<float,17,17>(), NoVectorization,InnerUnrolling)); VERIFY(test_assign(Matrix<float,4,4>(),Matrix<float,17,17>().block<4,4>(2,3)+Matrix<float,17,17>().block<4,4>(10,4), NoVectorization,CompleteUnrolling)); VERIFY(test_assign(MatrixXf(10,10),MatrixXf(20,20).block(10,10,2,3), SliceVectorization,NoUnrolling)); VERIFY(test_assign(VectorXf(10),VectorXf(10)+VectorXf(10), LinearVectorization,NoUnrolling)); VERIFY(test_sum(VectorXf(10), LinearVectorization,NoUnrolling)); VERIFY(test_sum(Matrix<float,5,2>(), NoVectorization,CompleteUnrolling)); VERIFY(test_sum(Matrix<float,6,2>(), LinearVectorization,CompleteUnrolling)); VERIFY(test_sum(Matrix<float,16,16>(), LinearVectorization,NoUnrolling)); VERIFY(test_sum(Matrix<float,16,16>().block<4,4>(1,2), NoVectorization,CompleteUnrolling)); #ifndef EIGEN_DEFAULT_TO_ROW_MAJOR VERIFY(test_sum(Matrix<float,16,16>().block<8,1>(1,2), LinearVectorization,CompleteUnrolling)); #endif VERIFY(test_sum(Matrix<double,7,3>(), NoVectorization,CompleteUnrolling)); #endif // EIGEN_VECTORIZE }
void addn(int N,int a,int width, quantum_reg *reg){//add a to register reg (mod N) test_sum(N-a,width,reg); //xlt N-a madd((1<<(width))+a-N,a,width,reg);//madd 2^K+a-N }