QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#500945 | #1146. Rail | Rafi22 | 8 | 4ms | 4292kb | C++20 | 2.1kb | 2024-08-02 05:20:10 | 2024-08-02 05:20:10 |
answer
#include "rail.h"
#include <bits/stdc++.h>
using namespace std;
#ifdef DEBUG
auto&operator<<(auto&o,pair<auto,auto>p){return o<<"("<<p.first<<", "<<p.second<<")";}
auto operator<<(auto&o,auto x)->decltype(x.end(),o){o<<"{";int i=0;for(auto e:x)o<<","+!i++<<e;return o<<"}";}
#define debug(X...)cerr<<"["#X"]: ",[](auto...$){((cerr<<$<<"; "),...)<<endl;}(X)
#else
#define debug(...){}
#endif
#define ll long long
#define ld long double
#define endl '\n'
#define st first
#define nd second
#define pb push_back
#define sz(x) (int)(x).size()
#define all(x) (x).begin(), (x).end()
#define FOR(i,l,r) for(int i=(l);i<=(r);i++)
#define ROF(i,r,l) for(int i=(r);i>=(l);i--)
int inf=1000000007;
ll infl=1000000000000000007;
ll mod=1000000007;
const int N=5007;
int d0[N];
int dy[N];
void findLocation(int n,int pos,int location[],int stype[])
{
location[0]=pos;
stype[0]=1;
int mn=inf,y=-1;
FOR(i,0,n-1)
{
if(i==0) continue;
d0[i]=getDistance(0,i);
if(d0[i]<mn)
{
mn=d0[i];
y=i;
}
}
location[y]=pos+d0[y];
stype[y]=2;
FOR(i,0,n-1)
{
if(i==y) continue;
dy[i]=getDistance(y,i);
}
vector<pair<int,int>>L,R;
FOR(i,1,n-1)
{
if(i==y) continue;
if(dy[i]<d0[y]&&d0[i]==d0[y]+dy[i])
{
location[i]=location[y]-dy[i];
stype[i]=1;
}
else if(d0[i]==d0[y]+dy[i]) L.pb({dy[i],i});
else R.pb({d0[i],i});
}
sort(all(L));
sort(all(R));
vector<int>X={0},Y={y};
for(auto [d,i]:R)
{
int p=d0[i]+location[0];
int dis=getDistance(Y.back(),i);
int q=location[Y.back()]-dis;
debug(p,q);
bool is=0;
for(auto j:Y)
{
if(p+q==2*location[j])
{
is=1;
location[i]=q;
stype[i]=1;
}
}
if(!is)
{
location[i]=p;
stype[i]=2;
Y.pb(i);
}
}
for(auto [d,i]:L)
{
int p=dy[i]-location[0];
int dis=getDistance(X.back(),i);
int q=location[X.back()]+dis;
bool is=0;
for(auto j:Y)
{
if(p+q==2*location[j])
{
is=1;
location[i]=q;
stype[i]=2;
}
}
if(!is)
{
location[i]=p;
stype[i]=1;
X.pb(i);
}
}
}
详细
Subtask #1:
score: 8
Accepted
Test #1:
score: 8
Accepted
time: 1ms
memory: 3860kb
input:
1 100 1 11 2 794 2 775 2 347 2 737 2 864 2 584 2 555 2 361 2 429 2 892 2 302 2 483 2 217 2 39 2 566 2 435 2 448 2 304 2 466 2 386 2 780 2 164 2 918 2 601 2 867 2 929 2 341 2 636 2 556 2 954 2 430 2 683 2 301 2 519 2 547 2 237 2 426 2 908 2 667 2 670 2 210 2 502 2 887 2 420 2 675 2 401 2 724 2 493 2 ...
output:
Correct
result:
ok
Test #2:
score: 8
Accepted
time: 0ms
memory: 3892kb
input:
1 100 1 13 2 768 2 165 2 101 2 185 2 678 2 145 2 865 2 650 2 769 2 985 2 756 2 236 2 973 2 688 2 522 2 654 2 316 2 598 2 901 2 274 2 547 2 744 2 511 2 684 2 331 2 822 2 757 2 198 2 85 2 526 2 363 2 186 2 711 2 393 2 683 2 928 2 43 2 805 2 914 2 152 2 239 2 840 2 916 2 893 2 509 2 514 2 561 2 410 2 7...
output:
Correct
result:
ok
Test #3:
score: 8
Accepted
time: 0ms
memory: 3880kb
input:
1 100 1 21 2 40 2 217 2 337 2 711 2 392 2 260 2 838 2 625 2 839 2 378 2 468 2 338 2 105 2 663 2 79 2 993 2 811 2 398 2 694 2 742 2 937 2 281 2 131 2 733 2 710 2 520 2 128 2 381 2 912 2 345 2 718 2 623 2 90 2 330 2 983 2 307 2 168 2 608 2 147 2 898 2 428 2 837 2 92 2 268 2 349 2 255 2 667 2 43 2 270 ...
output:
Correct
result:
ok
Test #4:
score: 8
Accepted
time: 0ms
memory: 3804kb
input:
1 100 1 30 2 512 2 723 2 790 2 546 2 811 2 767 2 427 2 761 2 489 2 938 2 287 2 195 2 145 2 231 2 87 2 62 2 691 2 671 2 583 2 268 2 522 2 395 2 632 2 500 2 873 2 863 2 478 2 447 2 904 2 809 2 311 2 627 2 951 2 857 2 718 2 636 2 552 2 560 2 574 2 191 2 755 2 71 2 774 2 194 2 134 2 466 2 866 2 69 2 86 ...
output:
Correct
result:
ok
Test #5:
score: 8
Accepted
time: 0ms
memory: 3796kb
input:
1 100 1 38 2 657 2 545 2 832 2 707 2 992 2 829 2 423 2 985 2 162 2 897 2 335 2 744 2 756 2 352 2 238 2 268 2 677 2 824 2 960 2 733 2 496 2 411 2 63 2 675 2 223 2 745 2 193 2 85 2 885 2 202 2 630 2 717 2 910 2 622 2 898 2 685 2 413 2 934 2 647 2 157 2 690 2 999 2 395 2 310 2 425 2 134 2 323 2 510 2 9...
output:
Correct
result:
ok
Test #6:
score: 8
Accepted
time: 0ms
memory: 3892kb
input:
1 100 1 12 2 669 2 901 2 133 2 896 2 738 2 776 2 44 2 134 2 154 2 29 2 638 2 937 2 874 2 235 2 397 2 779 2 709 2 588 2 701 2 324 2 965 2 865 2 251 2 710 2 715 2 689 2 249 2 174 2 551 2 270 2 427 2 684 2 518 2 165 2 812 2 914 2 298 2 68 2 899 2 936 2 357 2 773 2 524 2 755 2 552 2 233 2 343 2 605 2 90...
output:
Correct
result:
ok
Test #7:
score: 8
Accepted
time: 0ms
memory: 3804kb
input:
1 100 1 47 2 198 2 904 2 942 2 714 2 510 2 431 2 594 2 690 2 75 2 449 2 786 2 920 2 277 2 731 2 742 2 136 2 760 2 633 2 224 2 637 2 927 2 959 2 222 2 657 2 474 2 611 2 401 2 307 2 759 2 952 2 563 2 701 2 666 2 425 2 484 2 613 2 115 2 505 2 688 2 564 2 292 2 609 2 194 2 375 2 703 2 330 2 336 2 555 2 ...
output:
Correct
result:
ok
Test #8:
score: 8
Accepted
time: 0ms
memory: 3800kb
input:
1 100 1 7 2 631 2 253 2 535 2 16 2 311 2 891 2 250 2 698 2 843 2 525 2 43 2 740 2 429 2 610 2 643 2 276 2 529 2 243 2 174 2 229 2 537 2 288 2 685 2 459 2 823 2 878 2 72 2 759 2 663 2 573 2 366 2 294 2 179 2 842 2 144 2 265 2 541 2 340 2 791 2 936 2 432 2 572 2 898 2 75 2 201 2 427 2 670 2 375 2 8 2 ...
output:
Correct
result:
ok
Test #9:
score: 8
Accepted
time: 0ms
memory: 3892kb
input:
1 100 1 34 2 445 2 537 2 285 2 903 2 312 2 975 2 250 2 885 2 125 2 818 2 557 2 560 2 525 2 400 2 227 2 577 2 50 2 340 2 748 2 390 2 370 2 508 2 663 2 150 2 144 2 923 2 741 2 746 2 909 2 100 2 191 2 446 2 385 2 759 2 713 2 696 2 996 2 838 2 515 2 353 2 747 2 75 2 879 2 499 2 654 2 456 2 550 2 994 2 9...
output:
Correct
result:
ok
Test #10:
score: 8
Accepted
time: 0ms
memory: 4080kb
input:
1 100 1 31 2 325 2 179 2 190 2 113 2 350 2 720 2 553 2 712 2 465 2 524 2 657 2 671 2 665 2 390 2 348 2 620 2 901 2 342 2 116 2 649 2 724 2 473 2 789 2 618 2 890 2 449 2 334 2 669 2 232 2 363 2 346 2 763 2 554 2 459 2 114 2 626 2 178 2 91 2 889 2 180 2 100 2 912 2 197 2 843 2 260 2 170 2 96 2 954 2 2...
output:
Correct
result:
ok
Subtask #2:
score: 0
Wrong Answer
Test #11:
score: 0
Wrong Answer
time: 0ms
memory: 3748kb
input:
2 100 1 7327 1 116 2 9993 1 2736 1 6502 1 4106 1 6326 2 8055 1 6767 1 388 2 7645 1 1780 1 6159 2 7738 1 3706 1 3476 2 9549 2 7564 1 2401 1 6353 2 8829 1 945 1 606 1 4664 2 9585 2 7499 1 6703 1 3229 1 1382 2 8286 1 6805 1 351 1 793 1 1641 1 3087 1 3647 1 2099 2 9414 1 1703 2 8866 2 9802 2 9348 1 6999...
output:
Incorrect
result:
wrong answer Token "Incorrect" doesn't correspond to pattern "Correct"
Subtask #3:
score: 0
Wrong Answer
Test #21:
score: 0
Wrong Answer
time: 4ms
memory: 4292kb
input:
3 5000 1 763228 1 39310 2 962072 2 203549 1 85439 2 414565 2 78225 1 185073 2 174996 2 386604 1 662313 2 96651 1 271323 2 556033 1 788441 1 717148 1 404737 2 197742 2 760887 1 549658 2 713177 1 156708 1 858133 1 166177 1 809643 2 365041 1 73222 2 706708 2 296516 1 861386 1 782475 2 167675 1 100665 1...
output:
Incorrect
result:
wrong answer Token "Incorrect" doesn't correspond to pattern "Correct"
Subtask #4:
score: 0
Wrong Answer
Test #31:
score: 0
Wrong Answer
time: 4ms
memory: 3964kb
input:
3 5000 1 763228 1 39310 2 962072 2 203549 1 85439 2 414565 2 78225 1 185073 2 174996 2 386604 1 662313 2 96651 1 271323 2 556033 1 788441 1 717148 1 404737 2 197742 2 760887 1 549658 2 713177 1 156708 1 858133 1 166177 1 809643 2 365041 1 73222 2 706708 2 296516 1 861386 1 782475 2 167675 1 100665 1...
output:
Incorrect
result:
wrong answer Token "Incorrect" doesn't correspond to pattern "Correct"