#include <bits/stdc++.h> using namespace std; struct hired_t { int battles, size; hired_t( int s ) : battles( 0 ), size( s ) {} }; struct state_t: vector< hired_t > { int cost, encountered, hired; state_t() : cost( 0 ), encountered( 0 ), hired( 0 ) {} bool operator < ( const state_t &s ) const { if ( cost != s.cost ) return ( cost < s.cost ); if ( encountered != s.encountered ) return ( encountered < s.encountered ); return hired > s.hired; } void battle( int t ) { int u; stack< vector::iterator > erased; for( auto it = begin(), iu = end(); it != iu; it++, t -= u, hired -= u ) if ( ( it->size -= ( u = min( t, it->size ) ) ) == 0 || ++(it->battles) == 3 ) hired -= it->size, erased.push( it ); while( !erased.empty() ) erase( erased.top() ), erased.pop(); } void hire( int t ) { emplace_back( t ), hired += t; } } initial_state; struct states_t: set< state_t > { int min_cost, N, next; struct group_t { int size, cost; } g, group[ 20 ]; states_t(): min_cost( INT_MAX ) { cin >> N, insert( initial_state ); for( int i = 0; i < N; i++ ) cin >> group[ i ].size >> group[ i ].cost; } void goal_state( const state_t &present ) { if ( present.cost >= min_cost ) return; min_cost = present.cost; } void candidate_state( const state_t &present ) { if ( present.cost < min_cost ) insert( present ); } void battle( state_t present ) { if ( present.encountered < N ) present.battle( g.size ), candidate_state( present ); else goal_state( present ); } void pass( state_t present ) { present.cost += g.cost; if ( present.encountered < N ) candidate_state( present ); else goal_state( present ); } void hire( state_t present ) { present.cost += 2 * g.cost, present.hire( g.size ), candidate_state( present ); } void iterate() { auto it = begin(); if ( it->cost >= min_cost ) { erase( it ); return; } state_t present( *it ); erase( it ), g = group[ present.encountered++ ]; if ( present.hired >= g.size ) battle( present ); pass( present ); if ( present.encountered < N ) hire( present ); } }; int main() { ios_base::sync_with_stdio( false ), cin.tie( nullptr ), cout.tie( nullptr ); int T; cin >> T; while( T-- ) { states_t states; while( !states.empty() ) states.iterate(); cout << states.min_cost << '\n'; } }
50 20 846 496 393 637 631 559 35 734 976 619 367 855 288 292 709 659 38 83 465 526 689 837 103 779 40 145 481 429 554 323 478 752 818 871 740 800 781 774 886 756 20 348 453 416 541 528 626 233 210 656 76 144 15 50 41 451 471 485 462 399 562 244 430 481 16 343 327 567 766 71 97 207 418 901 974 311 780 600 543 990 607 20 780 810 655 954 312 712 594 938 445 584 789 133 781 564 941 926 884 520 752 990 579 955 464 596 4 57 29 288 85 494 786 864 655 793 817 966 856 762 903 300 20 124 484 534 604 254 377 416 801 71 139 444 747 666 122 495 207 606 190 507 226 648 376 421 574 746 680 73 819 273 695 329 748 530 862 352 784 590 767 584 12 20 884 845 157 229 23 24 873 535 264 216 999 254 401 308 48 354 902 78 756 650 377 387 416 332 35 464 826 923 92 108 448 327 953 957 555 975 980 780 861 243 20 796 848 719 454 306 144 413 234 721 882 474 332 595 329 513 244 24 35 723 280 745 558 260 867 593 334 538 862 363 753 535 510 952 605 963 609 748 728 842 820 20 892 505 972 863 734 581 799 633 192 2 609 354 469 490 401 280 837 710 609 314 186 26 176 237 281 610 286 672 692 848 656 583 705 980 797 438 560 595 422 103 20 272 373 179 538 594 936 438 748 339 641 517 273 104 785 890 975 353 118 953 611 58 90 404 870 147 485 721 788 392 376 438 664 748 968 553 693 903 990 792 593 20 991 814 279 178 347 57 688 389 815 615 266 446 862 319 157 186 925 105 832 389 533 303 698 448 9 396 773 907 199 323 299 541 137 929 719 835 337 758 576 151 20 430 592 686 532 259 207 749 781 456 806 241 473 380 305 638 842 629 915 624 971 732 711 372 109 562 100 595 718 526 786 721 955 729 759 838 988 317 938 768 124 20 854 777 472 144 280 360 151 272 969 999 615 660 514 278 217 843 339 111 649 150 672 116 165 614 201 53 316 247 766 498 371 971 626 842 466 906 554 968 529 874 20 994 722 949 415 744 286 518 15 235 863 688 357 889 612 264 126 701 498 378 254 729 307 766 393 384 302 232 853 347 808 404 340 881 704 106 624 989 975 990 575 20 667 374 947 257 298 161 940 602 491 178 183 499 738 735 127 469 900 794 581 362 530 28 519 597 933 739 54 685 366 825 292 384 550 590 992 848 750 931 801 592 20 960 228 859 29 806 572 989 487 96 450 833 690 851 490 148 59 588 87 501 220 346 504 684 19 253 261 922 793 251 759 655 562 986 865 942 792 436 930 630 883 20 700 319 910 13 653 65 352 177 63 160 486 298 323 157 495 564 359 93 214 296 101 79 789 587 391 113 39 140 643 402 699 695 720 609 707 724 673 58 901 88 20 996 980 692 97 889 320 199 554 366 838 535 597 296 379 642 618 598 306 475 712 238 448 723 930 139 223 330 459 410 433 791 757 765 834 854 653 154 404 559 871 20 966 853 511 370 100 241 318 581 570 484 718 538 540 31 410 571 1000 728 267 380 999 72 877 776 243 84 949 861 845 845 891 810 698 401 531 797 994 848 377 563 20 894 389 982 432 107 115 894 786 59 519 88 642 355 49 616 643 401 235 400 38 539 238 693 440 617 285 475 251 196 14 487 441 402 468 872 861 935 766 998 993 20 81 101 307 528 611 470 569 458 868 640 790 975 845 525 944 289 235 186 419 547 188 16 477 353 916 705 550 988 812 932 593 892 32 899 419 994 720 987 451 939 20 810 62 547 642 297 183 19 423 95 655 806 853 3 134 154 257 363 284 890 769 479 731 629 521 971 939 55 666 640 887 527 801 300 425 794 949 607 812 371 702 20 359 466 763 173 643 937 168 328 239 469 360 228 600 778 300 433 241 417 488 664 466 435 543 767 460 362 963 811 353 478 612 712 943 726 884 585 662 403 264 901 20 232 326 240 476 897 250 129 87 573 47 781 449 358 159 510 372 727 922 577 507 129 539 742 906 159 57 710 862 668 807 556 899 484 795 727 733 396 207 819 969 20 206 273 545 178 931 305 840 538 233 674 593 568 600 104 673 274 475 713 404 230 70 344 767 558 546 341 788 501 819 646 430 376 918 974 906 849 630 745 738 863 20 853 447 201 53 989 578 350 377 953 778 549 57 662 552 328 25 376 69 506 18 48 680 653 163 398 319 88 121 36 826 639 888 625 839 941 965 768 642 342 721 20 930 950 354 682 396 144 885 627 538 274 511 400 144 435 440 800 481 711 309 275 368 684 484 775 386 343 492 993 40 247 838 969 549 543 650 944 686 886 571 575 20 759 748 266 108 814 618 316 102 179 565 23 54 496 830 273 295 255 280 562 801 534 388 762 195 825 394 528 648 420 805 195 531 552 812 638 365 781 954 819 959 20 508 330 598 359 466 115 480 482 878 797 562 649 105 201 360 485 907 940 269 274 346 507 601 757 800 309 941 877 964 548 697 471 878 647 829 695 761 661 176 990 20 809 402 771 50 385 159 614 505 803 470 768 379 893 234 795 46 141 415 368 291 699 672 333 260 10 596 657 271 648 776 808 808 529 578 857 914 736 470 770 891 20 440 13 623 667 261 195 510 523 238 203 486 458 727 845 593 471 383 200 874 711 892 595 827 925 319 474 387 704 377 885 273 816 249 896 834 861 90 343 735 327 20 663 61 344 20 896 114 576 96 600 570 71 120 294 106 493 230 616 342 484 448 47 295 343 465 371 664 431 973 597 536 267 611 949 963 983 196 76 558 291 675 20 902 488 496 808 969 652 794 789 455 44 910 643 230 455 418 996 162 733 447 740 6 489 476 747 402 942 345 570 673 967 440 926 806 935 733 774 938 879 562 392 20 457 191 398 534 106 559 774 494 221 286 45 88 554 375 75 310 959 391 877 476 207 56 349 364 915 475 715 331 338 902 597 795 445 994 680 902 552 453 396 773 20 729 25 618 528 134 160 358 465 897 963 202 227 124 212 576 400 478 254 514 205 312 551 497 647 137 173 334 253 533 647 619 613 672 588 140 805 747 849 621 996 20 756 79 138 587 546 189 97 272 196 161 427 255 127 974 198 566 734 743 466 220 573 460 767 528 711 662 707 682 876 965 491 632 396 628 570 941 168 667 564 716 20 952 499 834 825 494 188 370 373 848 236 466 170 153 17 285 442 215 119 551 225 406 92 406 349 848 426 483 570 93 387 569 396 237 402 220 731 941 942 455 789 20 447 116 531 653 166 233 233 151 618 336 561 131 900 285 141 212 977 822 691 988 183 348 161 260 583 17 981 999 67 414 874 865 530 756 517 695 988 750 845 957 20 434 37 754 243 785 308 592 983 2 409 858 310 531 432 607 303 655 273 995 56 449 777 815 721 1 883 187 191 204 820 198 637 208 952 879 993 611 823 975 964 20 104 248 98 62 190 154 492 912 651 638 536 95 752 636 525 40 75 4 685 540 160 60 350 497 704 863 473 563 408 490 676 863 738 774 924 927 927 768 190 930 20 860 125 122 174 288 500 666 349 568 544 728 805 613 931 847 938 352 363 430 294 951 392 810 836 894 887 672 790 926 980 956 786 457 429 311 744 928 976 444 847 20 308 216 207 416 306 560 301 548 993 329 747 869 735 749 464 390 863 244 361 157 975 687 502 224 927 476 595 623 255 402 706 914 969 913 329 275 824 982 822 816 20 295 146 930 666 678 233 656 766 682 530 396 430 786 424 643 268 284 565 285 748 572 346 302 317 492 534 794 661 449 421 298 744 566 579 761 596 811 768 713 845 20 661 893 429 230 651 185 376 397 4 965 77 25 46 53 656 365 271 244 185 118 709 429 909 30 241 344 138 483 708 981 204 368 873 984 950 876 168 325 272 523 20 668 541 520 654 980 628 575 235 773 612 971 335 71 16 440 168 4 61 518 226 301 150 557 385 290 424 726 847 255 416 151 922 956 670 575 287 649 501 873 422 20 12 978 880 662 906 483 928 734 717 371 577 172 460 528 548 472 838 829 890 122 930 183 871 459 845 196 195 156 636 848 999 999 825 878 660 730 712 939 815 780 20 725 994 740 70 583 458 990 524 263 250 618 217 911 338 266 306 741 310 745 539 479 926 843 491 585 680 618 925 851 750 611 928 744 702 997 678 512 986 201 126 20 407 138 673 505 145 572 655 867 675 917 389 781 301 242 593 723 443 479 67 331 81 218 655 831 296 372 159 135 480 250 896 886 387 568 743 883 491 397 749 165 20 483 273 159 97 610 301 557 136 993 462 52 638 679 213 478 463 338 111 451 651 778 159 686 517 585 843 306 925 45 731 660 879 356 818 976 965 470 532 452 462 20 347 472 141 365 15 459 136 268 851 803 24 854 856 644 160 68 154 109 897 706 159 224 135 145 536 355 449 475 205 966 751 904 437 891 268 804 702 755 423 552 20 768 426 975 973 472 474 374 45 817 535 498 243 433 410 608 76 299 92 586 456 430 543 826 806 655 889 479 262 217 661 870 985 86 197 957 910 670 683 306 487 20 786 314 827 728 321 554 427 332 620 342 642 536 527 515 401 605 605 987 378 442 872 829 602 91 643 465 190 476 291 328 114 428 993 940 155 665 845 933 997 817