CSES - Siperia opettaa 3.0 - Results
Submission details
Task:Robots
Sender:eXeP
Submission time:2016-07-29 15:14:45 +0300
Language:C++
Status:READY
Result:0
Feedback
groupverdictscore
#10
Test results
testverdicttime
#1ACCEPTED0.06 sdetails
#20.79 sdetails
#30.56 sdetails
#40.55 sdetails
#5ACCEPTED0.55 sdetails
#6ACCEPTED0.52 sdetails
#70.54 sdetails
#80.55 sdetails
#90.58 sdetails
#100.60 sdetails
#110.57 sdetails
#120.61 sdetails
#13ACCEPTED0.54 sdetails
#140.53 sdetails
#150.49 sdetails
#16ACCEPTED0.06 sdetails
#170.15 sdetails
#180.38 sdetails
#190.59 sdetails
#200.61 sdetails
#210.62 sdetails
#220.61 sdetails
#23ACCEPTED0.55 sdetails
#24ACCEPTED0.48 sdetails
#250.56 sdetails
#26ACCEPTED0.44 sdetails
#270.50 sdetails
#28ACCEPTED0.35 sdetails
#29ACCEPTED0.41 sdetails
#30ACCEPTED0.36 sdetails
#31ACCEPTED0.38 sdetails
#32ACCEPTED0.29 sdetails
#330.56 sdetails
#340.56 sdetails
#35ACCEPTED0.56 sdetails
#360.56 sdetails
#370.56 sdetails

Compiler report

input/code.cpp: In function 'int main()':
input/code.cpp:49:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for(int i = 0; i < n; ++i){
                      ^
input/code.cpp:52:21: warning: array subscript has type 'char' [-Wchar-subscripts]
     d[i] = trans[fak];
                     ^
input/code.cpp:64:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for(int i = 0; i < n; ++i){
                      ^
input/code.cpp:110:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for(int i = 0; i < n; ++i){
                      ^
input/code.cpp:126:14: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     if(dis > t){
              ^
input/code.cpp:135:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for(int i = 0; i < n; ++i){
                      ^

Code

#include <bits/stdc++.h>

#define i64 long long
#define u64 unsigned long long
#define i32 int
#define u32 unsigned int

#define pii pair<int, int>
#define pll pair<long long, long long>

#define ld long double
#define defmod 1000000007

#define mati64(a,b) vector<vector<i64>>(a, vector<i64>(b, 0));
#define sit set<i64>::iterator
using namespace std;
u64 n, t; 
int d[101010];
i64 x[101010], y[101010];
int trans[1010];
int fuckme[10][2];
map<i64, set<i64>> rip[4];
vector<int> v[101010];
vector<int> v2[101010];
map<pair<pair<i64, i64>, int>, int> id;

i64 manh(int i, int j){
  return abs(x[i]-x[j])+abs(y[i]-y[j]);
}
int main(){
  //set<int> kk;
  //kk.insert(0);
  //cout <<"wtf"<< *(--kk.lower_bound(1)) << endl;
  trans['U'] = 0;
  trans['D'] = 2;
  trans['R'] = 1;
  trans['L'] = 3;
  fuckme[0][0] = 0;
  fuckme[0][1] = 1;
  fuckme[1][0] = 1;
  fuckme[1][1] = 0;
  fuckme[2][0] = 0;
  fuckme[2][1] = -1;
  fuckme[3][0] = -1;
  fuckme[3][1] = 0;
  cin.sync_with_stdio(0);
  cin.tie(0);
  cin >> n >> t;
  for(int i = 0; i < n; ++i){
    char fak;
    cin >> x[i] >> y[i] >> fak;
    d[i] = trans[fak];
    id[{{x[i], y[i]}, d[i]}] = i;
    if(d[i] == 0 || d[i] == 2){
      //cout << "dir " << d[i] << " x " << x[i] << " y " << y[i] << endl; 
      rip[d[i]][x[i]].insert(y[i]);
    }
    else{
      //cout << "dir " << d[i] << " y " << y[i] << " x " << x[i] << endl; 
      rip[d[i]][y[i]].insert(x[i]);
    }
  }
  
  for(int i = 0; i < n; ++i){
    
    if(rip[0][x[i]].size()){
      sit lol = rip[0][x[i]].lower_bound(y[i]);
      //cout << "U cont " << 0 << " x " << x[i] << " ";
      //for(auto f: rip[0][x[i]])
	//cout << f << " ";
      //cout << endl;
      //cout << "U loy " << *lol << endl;
      if((*lol) == y[i] || lol == rip[0][x[i]].end())
	--lol;
      //cout << "U loy " << *lol << endl;
      if(rip[0][x[i]].count(*lol) && *lol < y[i])
	v[i].push_back(id[{{x[i], *lol}, 0}]);
    }
    if(rip[2][x[i]].size()){
      sit lol = rip[2][x[i]].upper_bound(y[i]);
      if((*lol) == y[i])
	++lol;
      if(rip[2][x[i]].count(*lol) && *lol > y[i])
	v[i].push_back(id[{{x[i], *lol}, 2}]);
    }
    if(rip[1][y[i]].size()){
      sit lol = rip[1][y[i]].lower_bound(x[i]);
      //cout << "U cont " << 0 << " x " << x[i] << " ";
      //for(auto f: rip[0][x[i]])
	//cout << f << " ";
      //cout << endl;
      //cout << "U loy " << *lol << endl;
      if((*lol) == x[i] || lol == rip[1][y[i]].end())
	--lol;
      if(rip[1][y[i]].count(*lol) && *lol < x[i])
	v[i].push_back(id[{{*lol, y[i]}, 1}]);
    }
    if(rip[3][y[i]].size()){
      sit lol = rip[3][y[i]].upper_bound(x[i]);
      if((*lol) == x[i])
	++lol;
      if(rip[3][y[i]].count(*lol) && *lol > x[i])
	v[i].push_back(id[{{*lol, y[i]}, 3}]);
    }
    //cout << i << " paas ";
    //for(auto f: v[i])
    //  cout << f<< " ";
    //cout << endl;
  }
  for(int i = 0; i < n; ++i){
    for(auto f: v[i])
      v2[f].push_back(i);
    
  }
  priority_queue<pair<i64, int>> q;
  q.push({0, 0});
  pair<i64, i64> ans[101010];
  bool d1[101010] = {0};
  while(!q.empty()){
    int cur = q.top().second;
    i64 dis = -q.top().first;
    q.pop();
    if(d1[cur])
      continue;
    d1[cur] = 1;
    if(dis > t){
      ans[cur] = {x[cur], y[cur]};
    }
    else{
      ans[cur] = {x[cur]+fuckme[d[cur]][0]*(t-dis), y[cur]+fuckme[d[cur]][1]*(t-dis)};
    }
    for(auto f: v2[cur])
      q.push({-(dis+manh(cur, f)), f});
  }
  for(int i = 0; i < n; ++i){
    if(!d1[i])
      cout << x[i] << " " << y[i] << endl;
    else
      cout << ans[i].first << " " << ans[i].second << endl;
  }
  return 0;
}

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:

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
158260522 426364560
158260522 759037020
158260522 427764980
158260522 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
999999998537559904 257250937
795628008 999999999484579541
999999998424630771 144321804
-999999996797385769 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 -999999997494593448
531527275 999999997935347240
999999998508085779 319183722
730349222 999999997864140339
...

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 37563938
594935002 37563938
734315399 37563938
528773362 37563938
...

Test 8

Verdict:

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
-999999998292707238 461633934
386075092 999999998467001556
-999999998586451790 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
999999998377183620 293077924
46211797 999999999206624715
-999999997614141463 317219315
882175209 1000000000033782139
...

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 -999999998382163876
850928761 -999999998378541759
-999999997654886181 353187253
999999999404954292 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
-999999997378260445 869868252
510574002 999999998787461645
107928860 -999999996812574013
999999999211055674 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 999999998515647136
95613327 999999998803857697
-999999998297910692 410333678
999999999354018362 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 535170540
257716848 1626752449
740821606 273108699
608110094 539410304
...

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 889608806
366854683 570796148
799588075 970911538
251188854 382210484
...

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 -998435505756
80707751 -998787983056
999791608491 953490880
591537576 999728166743
...

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 -9998683315943
974910212 10000133392346
9999371433379 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
1000000000014177896 603753069
1000000000357033609 921205988
238952989 999999999920887732
541559959 -999999998791735588
...

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 -999999998081161626
-999999998002986387 513343753
-999999997814993802 722536184
-999999997950772207 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 -999999998316161062
180614597 999999998649756139
999999998505106783 507979841
463449590 -999999998576692966
...

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 -999999992487421360
999999996695756237 213889225
200279445 -999999994807086269
-999999993979998218 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:

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 -999999998133235772
782906609 1000000000133235274
782906609 -999999998133235772
782906609 -999999998133235772
...

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:

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 228308715
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:

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
-999999999128527591 711582662
473921396 -999999998890866325
473921396 -999999998890866325
-999999998658228856 241283927
...

Test 34

Verdict:

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
-999999998521168937 840501706
-999999998666806691 986139460
894449066 -999999998575116297
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:

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
999999999516928479 538029753
918270168 1000000000057382612
918270168 1000000000057382612
999999999377132073 398233347
...

Test 37

Verdict:

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
999999999971312381 945023696
382945727 -999999998643342958
1000000000018060050 991771365
382945727 1000000000643341572
...