CSES - Siperia opettaa 3.0 - Results
Submission details
Task:Robots
Sender:Hansuzu
Submission time:2016-07-29 17:59:50 +0300
Language:C++
Status:READY
Result:0
Feedback
groupverdictscore
#10
Test results
testverdicttime
#1ACCEPTED0.12 sdetails
#2ACCEPTED0.23 sdetails
#30.24 sdetails
#40.23 sdetails
#5ACCEPTED0.18 sdetails
#6ACCEPTED0.18 sdetails
#70.40 sdetails
#8ACCEPTED0.24 sdetails
#90.27 sdetails
#100.28 sdetails
#110.26 sdetails
#120.26 sdetails
#13ACCEPTED0.19 sdetails
#140.23 sdetails
#150.25 sdetails
#16ACCEPTED0.12 sdetails
#170.15 sdetails
#180.21 sdetails
#190.29 sdetails
#200.27 sdetails
#210.27 sdetails
#220.24 sdetails
#23ACCEPTED0.19 sdetails
#24ACCEPTED0.20 sdetails
#25ACCEPTED0.23 sdetails
#26ACCEPTED0.19 sdetails
#27ACCEPTED0.21 sdetails
#28ACCEPTED0.19 sdetails
#29ACCEPTED0.19 sdetails
#30ACCEPTED0.18 sdetails
#31ACCEPTED0.18 sdetails
#32ACCEPTED0.19 sdetails
#33ACCEPTED0.22 sdetails
#34ACCEPTED0.22 sdetails
#35ACCEPTED0.19 sdetails
#36ACCEPTED0.22 sdetails
#37ACCEPTED0.23 sdetails

Compiler report

input/code.cpp: In function 'int main()':
input/code.cpp:41:29: warning: 'py' may be used uninitialized in this function [-Wmaybe-uninitialized]
       rt[pj]['U']=MP(j, y[j]-py);
                             ^

Code

#include <iostream>
#include <vector>
#include <algorithm>
#include <queue>
#define MP make_pair
#define F first
#define S second
using namespace std;
int N;
long long T;

int x[101010];
int y[101010];
char d[101010];

vector<pair<pair<int, int>, int> > xs;
vector<pair<pair<int, int>, int> > ys;

pair<int, int> rt[101010][256];
int urt[101010][256];

long long u[101010];
priority_queue<pair<long long, int> > ac;

int main(){
  ios_base::sync_with_stdio(0); cin.tie(0);
  for (int i=0; i<101010; ++i) for (int j=0; j<256; ++j) rt[i][j]=MP(-1, 0);
  cin >> N >> T; ++T;
  for (int i=0; i<N; ++i){
    cin >> x[i] >> y[i] >> d[i];
    xs.push_back(MP(MP(x[i], y[i]), i));
    ys.push_back(MP(MP(y[i], x[i]), i));
  }
  sort(xs.begin(), xs.end());
  sort(ys.begin(), ys.end());
  int px=-1000111222; int py;
  int pj;
  for (int i=0; i<N; ++i){
    int j=xs[i].S;
    if (x[j]==px){
      rt[pj]['U']=MP(j, y[j]-py);
      rt[j]['D']=MP(pj, y[j]-py);
    }px=x[j];py=y[j];
    pj=j;
  }
  py=-1000111222;
  for (int i=0; i<N; ++i){
    int j=ys[i].S;
    if (y[j]==py){
      rt[pj]['R']=MP(j, x[j]-px);
      rt[j]['L']=MP(pj, x[j]-px);
    }px=x[j];py=y[j];
    pj=j;
  }
  u[0]=1;
  ac.push(MP(-1, 0));
  while (ac.size()){
    int c0=ac.top().S;
    int dr=d[c0];
    long long t=-ac.top().F;
    if (t!=u[c0]){ac.pop(); continue;}
    ac.pop();
    long long crt=0;
    int w;
    for (int c=c0;rt[c][dr].F!=-1;c=w){
      ++urt[c][dr];
      crt+=rt[c][dr].S;
      w=rt[c][dr].F;
      if (u[w] && u[w]<=u[c0]+crt){
	rt[c][dr].F=-1;
	continue;
      }
      u[w]=u[c0]+crt;
      ac.push(MP(-u[w], w));
      rt[c][dr].F=-1;
    }
  }
  for (int i=0; i<N; ++i){
    long long xi=x[i];
    long long yi=y[i];
    if (u[i] && u[i]<T){
      if (d[i]=='U') yi+=T-u[i];
      if (d[i]=='D') yi-=T-u[i];
      if (d[i]=='L') xi-=T-u[i];
      if (d[i]=='R') xi+=T-u[i];
    }
    cout << xi << " " << yi << "\n";
  }
}

Test details

Test 1

Verdict: ACCEPTED

input
5 10
1 0 U
3 1 U
1 2 R
1 1 L
...

correct output
1 10
3 6
9 2
-8 1
8 1

user output
1 10
3 6
9 2
-8 1
8 1

Test 2

Verdict: ACCEPTED

input
100000 1000000000000000000
158260522 833086986 U
158260522 426364560 L
158260522 759037020 R
158260522 427764980 L
...

correct output
158260522 1000000000833086986
-999999999434892416 426364560
1000000000084085920 759037020
-999999999436292836 427764980
-999999999611530938 603003082
...

user output
158260522 1000000000833086986
-999999999434892416 426364560
1000000000084085920 759037020
-999999999436292836 427764980
-999999999611530938 603003082
...

Test 3

Verdict:

input
100000 1000000000000000000
233552954 47283907 D
795628008 257250937 R
795628008 550072283 U
795628008 144321804 R
...

correct output
233552954 -999999999952716093
1000000000023080040 257250937
795628008 999999999484702969
1000000000136009173 144321804
-999999998580742143 108332818
...

user output
233552954 -999999999952716093
1000000000022956612 257250937
795628008 999999999484702969
1000000000136009173 144321804
-999999998580742143 108332818
...

Test 4

Verdict:

input
100000 1000000000000000000
531527275 380312548 L
368745941 258142892 D
531527275 138986229 U
531527275 319183722 R
...

correct output
-999999999468472725 380312548
368745941 -999999998733348866
531527275 999999999174102658
999999999746841197 319183722
730349222 999999999102895757
...

user output
-999999999468472725 380312548
368745941 -999999998732811674
531527275 999999999173316196
999999999746054735 319183722
730349222 999999999102895757
...

Test 5

Verdict: ACCEPTED

input
100000 1000000000000000000
561380534 729502086 D
203720318 729502086 U
813185473 729502086 L
808991828 729502086 L
...

correct output
561380534 -999999999270497914
203720318 729502086
813185473 729502086
808991828 729502086
772433385 729502086
...

user output
561380534 -999999999270497914
203720318 729502086
813185473 729502086
808991828 729502086
772433385 729502086
...

Test 6

Verdict: ACCEPTED

input
100000 1000000000000000000
40633672 256815712 U
392684870 590303299 D
203773372 590303299 L
593293112 590303299 U
...

correct output
40633672 1000000000256815712
392684870 590303299
203773372 590303299
593293112 590303299
652768710 590303299
...

user output
40633672 1000000000256815712
392684870 590303299
203773372 590303299
593293112 590303299
652768710 590303299
...

Test 7

Verdict:

input
100000 1000000000000000000
317153144 37563938 D
461986566 37563938 D
594935002 37563938 U
734315399 37563938 R
...

correct output
317153144 -999999999962436062
461986566 -999999998732505128
594935002 999999998674684568
999999999232055632 37563938
528773362 999999998740846208
...

user output
317153144 -999999999962436062
461986566 -999999998732299382
594935002 999999998674666136
999999999232055632 37563938
528773362 999999998740528790
...

Test 8

Verdict: ACCEPTED

input
100000 1000000000000000000
386075092 217120430 U
386075092 461633934 L
386075092 124926580 U
386075092 755378486 L
...

correct output
386075092 1000000000217120430
-999999999369411404 461633934
386075092 1000000000032619042
-999999999075666852 755378486
386075092 1000000000217120430
...

user output
386075092 1000000000217120430
-999999999369411404 461633934
386075092 1000000000032619042
-999999999075666852 755378486
386075092 1000000000217120430
...

Test 9

Verdict:

input
100000 1000000000000000000
812304066 108536522 D
393591774 293077924 R
46211797 40626753 U
251187352 317219315 L
...

correct output
812304066 -999999999891463478
999999999789937222 293077924
46211797 999999999206624715
-999999998978612283 317219315
882175209 1000000000036976417
...

user output
812304066 -999999999891463478
999999999789475486 293077924
46211797 999999999206610973
-999999998977636119 317219315
882175209 1000000000036210493
...

Test 10

Verdict:

input
100000 1000000000000000000
636581665 627517899 U
384326252 989020485 D
850928761 393946779 D
983081163 353187253 L
...

correct output
636581665 1000000000627517899
384326252 -999999998397221516
850928761 -999999999149349241
-999999998387302929 353187253
1000000000175761774 175483772
...

user output
636581665 1000000000627517899
384326252 -999999998397221516
850928761 -999999999145950317
-999999998383904005 353187253
1000000000175761774 175483772
...

Test 11

Verdict:

input
100000 1000000000000000000
95402381 180577248 D
820355630 869868252 L
510574002 947140642 U
107928860 216094009 D
...

correct output
95402381 -999999999819422752
-999999997751978659 869868252
510574002 999999999751984169
107928860 -999999999722441293
999999999521313332 741244839
...

user output
95402381 -999999999819422752
-999999997751978659 869868252
510574002 999999999751984169
107928860 -999999999722441293
999999999521313332 741244839
...

Test 12

Verdict:

input
100000 1000000000000000000
545737590 287413230 D
32300820 112475277 U
95613327 287413230 U
631751785 410333678 L
...

correct output
545737590 -999999999712586770
32300820 999999999423128362
95613327 999999999711338923
-999999999034335720 410333678
1000000000045724672 662448296
...

user output
545737590 -999999999712586770
32300820 999999999422021256
95613327 999999999711338923
-999999999034335720 410333678
1000000000045724672 662448296
...

Test 13

Verdict: ACCEPTED

input
100000 1000000000000000000
726706648 742813187 U
170991532 742813187 U
245380683 742813187 R
239885395 742813187 L
...

correct output
726706648 1000000000742813187
170991532 742813187
245380683 742813187
239885395 742813187
101591873 742813187
...

user output
726706648 1000000000742813187
170991532 742813187
245380683 742813187
239885395 742813187
101591873 742813187
...

Test 14

Verdict:

input
89153 1000000000
452747846 962556007 L
666044562 535170540 D
257716848 892169727 U
672216693 273108699 R
...

correct output
-547252154 962556007
666044562 176384675
257716848 1626752449
762768586 273108699
608110094 118450207
...

user output
-547252154 962556007
666044562 178713225
257716848 1626752449
760440036 273108699
608110094 120778757
...

Test 15

Verdict:

input
91906 10000000000
958668995 246058339 R
503666498 889608806 U
366854683 570796148 R
799588075 970911538 L
...

correct output
10958668995 246058339
503666498 9776131210
9435377930 570796148
-8301553174 970911538
251188854 9523653566
...

user output
10958668995 246058339
503666498 9776131210
9402898886 570796148
-8301553174 970911538
251188854 9485974788
...

Test 16

Verdict: ACCEPTED

input
242 100000000000
203049518 714923922 L
441395303 860719447 R
71823579 316450815 U
743887311 533611458 R
...

correct output
-99796950482 714923922
441395303 860719447
71823579 316450815
743887311 533611458
543109434 456937805
...

user output
-99796950482 714923922
441395303 860719447
71823579 316450815
743887311 533611458
543109434 456937805
...

Test 17

Verdict:

input
24226 1000000000000
285356318 942519123 U
690346553 272667868 D
80707751 128641666 D
578149194 953490880 R
...

correct output
285356318 1000942519123
690346553 -998559928912
80707751 -998787983056
1000116303085 953490880
591537576 1000186466953
...

user output
285356318 1000942519123
690346553 -998516290320
80707751 -998762887818
999925707185 953490880
591537576 1000106798059
...

Test 18

Verdict:

input
67458 10000000000000
818609843 930613401 L
70389372 756883251 U
432539187 70051676 D
974910212 631543164 U
...

correct output
-9999181390157 930613401
70389372 9999834932630
432539187 -9998683315943
974910212 10000133392346
9999371433379 151556251
...

user output
-9999181390157 930613401
70389372 9999834932630
432539187 -9998649954511
974910212 10000133392346
9999365634705 151556251
...

Test 19

Verdict:

input
100000 1000000000000000000
592825996 837436381 U
580124599 603753069 R
761464601 921205988 R
238952989 715879557 U
...

correct output
592825996 1000000000837436381
1000000000306735572 603753069
1000000000509056389 921205988
238952989 1000000000213445408
541559959 -999999999084293264
...

user output
592825996 1000000000837436381
1000000000306735572 603753069
1000000000509056389 921205988
238952989 1000000000184178918
541559959 -999999999058974372
...

Test 20

Verdict:

input
100000 1000000000000000000
666277986 159178888 R
591518992 201116843 D
5384772 513343753 L
803303889 722536184 L
...

correct output
1000000000666277986 159178888
591518992 -999999999579455514
-999999998978305285 513343753
-999999998496312912 722536184
-999999998548487533 943161505
...

user output
1000000000666277986 159178888
591518992 -999999999579455514
-999999998900580127 513343753
-999999998431572018 722536184
-999999998443203795 943161505
...

Test 21

Verdict:

input
100000 1000000000000000000
829714962 808467768 R
964319842 920533064 D
180614597 177949083 U
38188492 507979841 R
...

correct output
1000000000829714962 808467768
964319842 -999999998447796436
180614597 999999998830414811
999999998866360637 507979841
463449590 -999999998642658912
...

user output
1000000000829714962 808467768
964319842 -999999998447796436
180614597 999999998725020053
999999998657144897 507979841
463449590 -999999998525865946
...

Test 22

Verdict:

input
100000 1000000000000000000
952227250 823291392 D
709686642 725165530 D
691423285 213889225 R
200279445 575351813 D
...

correct output
952227250 -999999999176708608
709686642 -999999996980760384
999999996733114765 213889225
200279445 -999999995569031779
-999999995586295722 262801002
...

user output
952227250 -999999999176708608
709686642 -999999996980760384
999999996733114765 213889225
200279445 -999999995496539717
-999999995586295722 262801002
...

Test 23

Verdict: ACCEPTED

input
100000 1000000000000000000
253685402 394065730 L
715663507 323731110 L
635131545 724754972 D
647819839 760698125 L
...

correct output
-999999999746314598 394065730
715663507 323731110
635131545 724754972
647819839 760698125
331875175 123596160
...

user output
-999999999746314598 394065730
715663507 323731110
635131545 724754972
647819839 760698125
331875175 123596160
...

Test 24

Verdict: ACCEPTED

input
100000 1000000000000000000
775679740 954819331 U
775679740 961500530 U
775679740 901490976 U
775679740 260604449 U
...

correct output
775679740 1000000000954819331
775679740 1000000000954819331
775679740 901490976
775679740 260604449
775679740 93919169
...

user output
775679740 1000000000954819331
775679740 1000000000954819331
775679740 901490976
775679740 260604449
775679740 93919169
...

Test 25

Verdict: ACCEPTED

input
100000 1000000000000000000
782906609 133235274 U
782906609 836712760 D
782906609 242210260 U
782906609 162010416 D
...

correct output
782906609 1000000000133235274
782906609 -999999998459809754
782906609 1000000000133235274
782906609 -999999999809214442
782906609 -999999998915510326
...

user output
782906609 1000000000133235274
782906609 -999999998459809754
782906609 1000000000133235274
782906609 -999999999809214442
782906609 -999999998915510326
...

Test 26

Verdict: ACCEPTED

input
100000 1000000000000000000
904492027 527595435 U
904492027 507833832 U
320683452 830672563 U
320683452 723405646 U
...

correct output
904492027 1000000000527595435
904492027 507833832
320683452 830672563
320683452 723405646
320683452 152800852
...

user output
904492027 1000000000527595435
904492027 507833832
320683452 830672563
320683452 723405646
320683452 152800852
...

Test 27

Verdict: ACCEPTED

input
100000 1000000000000000000
940767425 124739249 D
744756599 542257788 D
744756599 141763433 U
940767425 228308715 D
...

correct output
940767425 -999999999875260751
744756599 542257788
744756599 141763433
940767425 -999999999668108125
744756599 585682143
...

user output
940767425 -999999999875260751
744756599 542257788
744756599 141763433
940767425 -999999999668108125
744756599 585682143
...

Test 28

Verdict: ACCEPTED

input
100000 1000000000000000000
397746824 159049030 U
1703392 159049030 U
419939112 159049030 U
835014838 159049030 U
...

correct output
397746824 1000000000159049030
1703392 159049030
419939112 159049030
835014838 159049030
148936277 541749540
...

user output
397746824 1000000000159049030
1703392 159049030
419939112 159049030
835014838 159049030
148936277 541749540
...

Test 29

Verdict: ACCEPTED

input
100000 1000000000000000000
723992675 321471314 U
156254457 528919984 D
733307343 321471314 D
739607186 321471314 U
...

correct output
723992675 1000000000321471314
156254457 528919984
733307343 321471314
739607186 321471314
111573745 321471314
...

user output
723992675 1000000000321471314
156254457 528919984
733307343 321471314
739607186 321471314
111573745 321471314
...

Test 30

Verdict: ACCEPTED

input
100000 1000000000000000000
675407479 250089291 U
451161204 250089291 U
910761092 250089291 U
947320836 250089291 U
...

correct output
675407479 1000000000250089291
451161204 250089291
910761092 250089291
947320836 250089291
833457294 250089291
...

user output
675407479 1000000000250089291
451161204 250089291
910761092 250089291
947320836 250089291
833457294 250089291
...

Test 31

Verdict: ACCEPTED

input
100000 1000000000000000000
196189124 228526447 U
477932095 228526447 D
687059944 228526447 D
326471760 228526447 U
...

correct output
196189124 1000000000228526447
477932095 228526447
687059944 228526447
326471760 228526447
341135829 228526447
...

user output
196189124 1000000000228526447
477932095 228526447
687059944 228526447
326471760 228526447
341135829 228526447
...

Test 32

Verdict: ACCEPTED

input
100000 1000000000
0 100000 D
0 99999 D
0 99998 D
0 99997 D
...

correct output
0 -999900000
0 -999900000
0 -999900000
0 -999900000
0 -999900000
...

user output
0 -999900000
0 -999900000
0 -999900000
0 -999900000
0 -999900000
...

Test 33

Verdict: ACCEPTED

input
100000 1000000000000000000
473921396 890834979 U
473921396 711582662 L
473921396 883086059 D
473921396 871996608 D
...

correct output
473921396 1000000000890834979
-999999999346703263 711582662
473921396 -999999999109041997
473921396 -999999999109041997
-999999998876404528 241283927
...

user output
473921396 1000000000890834979
-999999999346703263 711582662
473921396 -999999999109041997
473921396 -999999999109041997
-999999998876404528 241283927
...

Test 34

Verdict: ACCEPTED

input
100000 1000000000000000000
894449066 575115655 U
894449066 840501706 L
894449066 986139460 L
894449066 892106502 D
...

correct output
894449066 1000000000575115655
-999999998840164883 840501706
-999999998694527129 986139460
894449066 -999999998790902651
894449066 1000000000575115655
...

user output
894449066 1000000000575115655
-999999998840164883 840501706
-999999998694527129 986139460
894449066 -999999998790902651
894449066 1000000000575115655
...

Test 35

Verdict: ACCEPTED

input
100000 1000000000000000000
259474019 781547542 L
211709778 840501706 D
225226213 986139460 R
141335940 892106502 U
...

correct output
-999999999740525981 781547542
211709778 840501706
225226213 986139460
141335940 892106502
242296739 804680105
...

user output
-999999999740525981 781547542
211709778 840501706
225226213 986139460
141335940 892106502
242296739 804680105
...

Test 36

Verdict: ACCEPTED

input
100000 1000000000000000000
918270168 57575548 D
918270168 538029753 R
918270168 656461613 U
918270168 846616703 U
...

correct output
918270168 -999999999942424452
1000000000437623027 538029753
918270168 1000000000057382612
918270168 1000000000057382612
1000000000577419433 398233347
...

user output
918270168 -999999999942424452
1000000000437623027 538029753
918270168 1000000000057382612
918270168 1000000000057382612
1000000000577419433 398233347
...

Test 37

Verdict: ACCEPTED

input
100000 1000000000000000000
382945727 643341572 U
382945727 945023696 R
382945727 920093999 D
382945727 991771365 R
...

correct output
382945727 1000000000643341572
1000000000081263603 945023696
382945727 -999999998803153574
1000000000034515934 991771365
382945727 1000000000643341572
...

user output
382945727 1000000000643341572
1000000000081263603 945023696
382945727 -999999998803153574
1000000000034515934 991771365
382945727 1000000000643341572
...