답안 #144057

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
144057 2019-08-15T22:30:52 Z Lyestria Arranging Shoes (IOI19_shoes) C++14
100 / 100
438 ms 273080 KB
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int mn=2e5+10;
queue<int>pos[mn],neg[mn];
int par[mn];
int bit[mn];
void up(int a,int b){for(;a<mn;a+=a&-a)bit[a]+=b;}
int qu(int a){int b=0;for(;a;a-=a&-a)b+=bit[a];return b;}
bool done[mn];
long long count_swaps(std::vector<int> s) {
	int n=s.size();
	ll ans=0;
	int i;
	for(i=0;i<n;i++){
        if(s[i]>0){
            pos[s[i]].push(i);
        }
        else{
            neg[-s[i]].push(i);
        }
	}
	for(i=1;i<mn;i++)up(i,1);
	int ac=1;
	for(i=0;i<n;i++){
        if(done[i])continue;
        int p;
        if(s[i]>0){
            ans++;
            p=neg[s[i]].front();
        }
        else{
            p=pos[-s[i]].front();
        }
        ans+=qu(p)-ac;
        done[p]=1;
        up(i+1,1);
        up(p,-1);
        neg[abs(s[i])].pop();
        pos[abs(s[i])].pop();
        ac+=2;
	}
	return ans;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 306 ms 270456 KB Output is correct
2 Correct 271 ms 270484 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 306 ms 270456 KB Output is correct
2 Correct 271 ms 270484 KB Output is correct
3 Correct 272 ms 270456 KB Output is correct
4 Correct 275 ms 270452 KB Output is correct
5 Correct 271 ms 270428 KB Output is correct
6 Correct 274 ms 270456 KB Output is correct
7 Correct 276 ms 270428 KB Output is correct
8 Correct 275 ms 270352 KB Output is correct
9 Correct 273 ms 270584 KB Output is correct
10 Correct 275 ms 270456 KB Output is correct
11 Correct 329 ms 270456 KB Output is correct
12 Correct 316 ms 270480 KB Output is correct
13 Correct 269 ms 270456 KB Output is correct
14 Correct 271 ms 270396 KB Output is correct
15 Correct 276 ms 270504 KB Output is correct
16 Correct 318 ms 270408 KB Output is correct
17 Correct 287 ms 270328 KB Output is correct
18 Correct 274 ms 270328 KB Output is correct
19 Correct 282 ms 270328 KB Output is correct
20 Correct 275 ms 270460 KB Output is correct
21 Correct 275 ms 270328 KB Output is correct
22 Correct 271 ms 270428 KB Output is correct
23 Correct 276 ms 270328 KB Output is correct
24 Correct 275 ms 270428 KB Output is correct
25 Correct 274 ms 270412 KB Output is correct
26 Correct 274 ms 270456 KB Output is correct
27 Correct 274 ms 270328 KB Output is correct
28 Correct 273 ms 270332 KB Output is correct
29 Correct 272 ms 270328 KB Output is correct
30 Correct 283 ms 270456 KB Output is correct
31 Correct 276 ms 270328 KB Output is correct
32 Correct 273 ms 270352 KB Output is correct
33 Correct 275 ms 270384 KB Output is correct
34 Correct 280 ms 270424 KB Output is correct
35 Correct 274 ms 270408 KB Output is correct
36 Correct 274 ms 270376 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 306 ms 270456 KB Output is correct
2 Correct 271 ms 270484 KB Output is correct
3 Correct 273 ms 270416 KB Output is correct
4 Correct 274 ms 270328 KB Output is correct
5 Correct 277 ms 270388 KB Output is correct
6 Correct 273 ms 270328 KB Output is correct
7 Correct 275 ms 270436 KB Output is correct
8 Correct 273 ms 270360 KB Output is correct
9 Correct 272 ms 270328 KB Output is correct
10 Correct 274 ms 270308 KB Output is correct
11 Correct 278 ms 270328 KB Output is correct
12 Correct 275 ms 270416 KB Output is correct
13 Correct 276 ms 270360 KB Output is correct
14 Correct 309 ms 270400 KB Output is correct
15 Correct 300 ms 270340 KB Output is correct
16 Correct 274 ms 270400 KB Output is correct
17 Correct 276 ms 270448 KB Output is correct
18 Correct 305 ms 270584 KB Output is correct
19 Correct 301 ms 270448 KB Output is correct
20 Correct 329 ms 270708 KB Output is correct
21 Correct 305 ms 270716 KB Output is correct
22 Correct 333 ms 273016 KB Output is correct
23 Correct 327 ms 273016 KB Output is correct
24 Correct 335 ms 272940 KB Output is correct
25 Correct 334 ms 272912 KB Output is correct
26 Correct 332 ms 273044 KB Output is correct
27 Correct 330 ms 273016 KB Output is correct
28 Correct 329 ms 272888 KB Output is correct
29 Correct 330 ms 272888 KB Output is correct
30 Correct 325 ms 272880 KB Output is correct
31 Correct 385 ms 273016 KB Output is correct
32 Correct 346 ms 272884 KB Output is correct
33 Correct 330 ms 272980 KB Output is correct
34 Correct 390 ms 272888 KB Output is correct
35 Correct 304 ms 270344 KB Output is correct
36 Correct 331 ms 270388 KB Output is correct
37 Correct 346 ms 272912 KB Output is correct
38 Correct 333 ms 272888 KB Output is correct
39 Correct 352 ms 273016 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 276 ms 270464 KB Output is correct
2 Correct 283 ms 270424 KB Output is correct
3 Correct 288 ms 270372 KB Output is correct
4 Correct 322 ms 270396 KB Output is correct
5 Correct 410 ms 272076 KB Output is correct
6 Correct 342 ms 272056 KB Output is correct
7 Correct 370 ms 272000 KB Output is correct
8 Correct 334 ms 273080 KB Output is correct
9 Correct 438 ms 271992 KB Output is correct
10 Correct 411 ms 271992 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 306 ms 270456 KB Output is correct
2 Correct 271 ms 270484 KB Output is correct
3 Correct 272 ms 270456 KB Output is correct
4 Correct 275 ms 270452 KB Output is correct
5 Correct 271 ms 270428 KB Output is correct
6 Correct 274 ms 270456 KB Output is correct
7 Correct 276 ms 270428 KB Output is correct
8 Correct 275 ms 270352 KB Output is correct
9 Correct 273 ms 270584 KB Output is correct
10 Correct 275 ms 270456 KB Output is correct
11 Correct 329 ms 270456 KB Output is correct
12 Correct 316 ms 270480 KB Output is correct
13 Correct 269 ms 270456 KB Output is correct
14 Correct 271 ms 270396 KB Output is correct
15 Correct 276 ms 270504 KB Output is correct
16 Correct 318 ms 270408 KB Output is correct
17 Correct 287 ms 270328 KB Output is correct
18 Correct 274 ms 270328 KB Output is correct
19 Correct 282 ms 270328 KB Output is correct
20 Correct 275 ms 270460 KB Output is correct
21 Correct 275 ms 270328 KB Output is correct
22 Correct 271 ms 270428 KB Output is correct
23 Correct 276 ms 270328 KB Output is correct
24 Correct 275 ms 270428 KB Output is correct
25 Correct 274 ms 270412 KB Output is correct
26 Correct 274 ms 270456 KB Output is correct
27 Correct 274 ms 270328 KB Output is correct
28 Correct 273 ms 270332 KB Output is correct
29 Correct 272 ms 270328 KB Output is correct
30 Correct 283 ms 270456 KB Output is correct
31 Correct 276 ms 270328 KB Output is correct
32 Correct 273 ms 270352 KB Output is correct
33 Correct 275 ms 270384 KB Output is correct
34 Correct 280 ms 270424 KB Output is correct
35 Correct 274 ms 270408 KB Output is correct
36 Correct 274 ms 270376 KB Output is correct
37 Correct 271 ms 270428 KB Output is correct
38 Correct 272 ms 270392 KB Output is correct
39 Correct 271 ms 270456 KB Output is correct
40 Correct 274 ms 270324 KB Output is correct
41 Correct 274 ms 270444 KB Output is correct
42 Correct 275 ms 270544 KB Output is correct
43 Correct 278 ms 270328 KB Output is correct
44 Correct 275 ms 270456 KB Output is correct
45 Correct 277 ms 270424 KB Output is correct
46 Correct 287 ms 270456 KB Output is correct
47 Correct 274 ms 270456 KB Output is correct
48 Correct 276 ms 270372 KB Output is correct
49 Correct 273 ms 270456 KB Output is correct
50 Correct 301 ms 270456 KB Output is correct
51 Correct 300 ms 270456 KB Output is correct
52 Correct 276 ms 270328 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 306 ms 270456 KB Output is correct
2 Correct 271 ms 270484 KB Output is correct
3 Correct 272 ms 270456 KB Output is correct
4 Correct 275 ms 270452 KB Output is correct
5 Correct 271 ms 270428 KB Output is correct
6 Correct 274 ms 270456 KB Output is correct
7 Correct 276 ms 270428 KB Output is correct
8 Correct 275 ms 270352 KB Output is correct
9 Correct 273 ms 270584 KB Output is correct
10 Correct 275 ms 270456 KB Output is correct
11 Correct 329 ms 270456 KB Output is correct
12 Correct 316 ms 270480 KB Output is correct
13 Correct 269 ms 270456 KB Output is correct
14 Correct 271 ms 270396 KB Output is correct
15 Correct 276 ms 270504 KB Output is correct
16 Correct 318 ms 270408 KB Output is correct
17 Correct 287 ms 270328 KB Output is correct
18 Correct 274 ms 270328 KB Output is correct
19 Correct 282 ms 270328 KB Output is correct
20 Correct 275 ms 270460 KB Output is correct
21 Correct 275 ms 270328 KB Output is correct
22 Correct 271 ms 270428 KB Output is correct
23 Correct 276 ms 270328 KB Output is correct
24 Correct 275 ms 270428 KB Output is correct
25 Correct 274 ms 270412 KB Output is correct
26 Correct 274 ms 270456 KB Output is correct
27 Correct 274 ms 270328 KB Output is correct
28 Correct 273 ms 270332 KB Output is correct
29 Correct 272 ms 270328 KB Output is correct
30 Correct 283 ms 270456 KB Output is correct
31 Correct 276 ms 270328 KB Output is correct
32 Correct 273 ms 270352 KB Output is correct
33 Correct 275 ms 270384 KB Output is correct
34 Correct 280 ms 270424 KB Output is correct
35 Correct 274 ms 270408 KB Output is correct
36 Correct 274 ms 270376 KB Output is correct
37 Correct 273 ms 270416 KB Output is correct
38 Correct 274 ms 270328 KB Output is correct
39 Correct 277 ms 270388 KB Output is correct
40 Correct 273 ms 270328 KB Output is correct
41 Correct 275 ms 270436 KB Output is correct
42 Correct 273 ms 270360 KB Output is correct
43 Correct 272 ms 270328 KB Output is correct
44 Correct 274 ms 270308 KB Output is correct
45 Correct 278 ms 270328 KB Output is correct
46 Correct 275 ms 270416 KB Output is correct
47 Correct 276 ms 270360 KB Output is correct
48 Correct 309 ms 270400 KB Output is correct
49 Correct 300 ms 270340 KB Output is correct
50 Correct 274 ms 270400 KB Output is correct
51 Correct 276 ms 270448 KB Output is correct
52 Correct 305 ms 270584 KB Output is correct
53 Correct 301 ms 270448 KB Output is correct
54 Correct 329 ms 270708 KB Output is correct
55 Correct 305 ms 270716 KB Output is correct
56 Correct 333 ms 273016 KB Output is correct
57 Correct 327 ms 273016 KB Output is correct
58 Correct 335 ms 272940 KB Output is correct
59 Correct 334 ms 272912 KB Output is correct
60 Correct 332 ms 273044 KB Output is correct
61 Correct 330 ms 273016 KB Output is correct
62 Correct 329 ms 272888 KB Output is correct
63 Correct 330 ms 272888 KB Output is correct
64 Correct 325 ms 272880 KB Output is correct
65 Correct 385 ms 273016 KB Output is correct
66 Correct 346 ms 272884 KB Output is correct
67 Correct 330 ms 272980 KB Output is correct
68 Correct 390 ms 272888 KB Output is correct
69 Correct 304 ms 270344 KB Output is correct
70 Correct 331 ms 270388 KB Output is correct
71 Correct 346 ms 272912 KB Output is correct
72 Correct 333 ms 272888 KB Output is correct
73 Correct 352 ms 273016 KB Output is correct
74 Correct 276 ms 270464 KB Output is correct
75 Correct 283 ms 270424 KB Output is correct
76 Correct 288 ms 270372 KB Output is correct
77 Correct 322 ms 270396 KB Output is correct
78 Correct 410 ms 272076 KB Output is correct
79 Correct 342 ms 272056 KB Output is correct
80 Correct 370 ms 272000 KB Output is correct
81 Correct 334 ms 273080 KB Output is correct
82 Correct 438 ms 271992 KB Output is correct
83 Correct 411 ms 271992 KB Output is correct
84 Correct 271 ms 270428 KB Output is correct
85 Correct 272 ms 270392 KB Output is correct
86 Correct 271 ms 270456 KB Output is correct
87 Correct 274 ms 270324 KB Output is correct
88 Correct 274 ms 270444 KB Output is correct
89 Correct 275 ms 270544 KB Output is correct
90 Correct 278 ms 270328 KB Output is correct
91 Correct 275 ms 270456 KB Output is correct
92 Correct 277 ms 270424 KB Output is correct
93 Correct 287 ms 270456 KB Output is correct
94 Correct 274 ms 270456 KB Output is correct
95 Correct 276 ms 270372 KB Output is correct
96 Correct 273 ms 270456 KB Output is correct
97 Correct 301 ms 270456 KB Output is correct
98 Correct 300 ms 270456 KB Output is correct
99 Correct 276 ms 270328 KB Output is correct
100 Correct 274 ms 270476 KB Output is correct
101 Correct 278 ms 270520 KB Output is correct
102 Correct 280 ms 270596 KB Output is correct
103 Correct 376 ms 272248 KB Output is correct
104 Correct 366 ms 272120 KB Output is correct
105 Correct 362 ms 272248 KB Output is correct
106 Correct 359 ms 271992 KB Output is correct
107 Correct 334 ms 272248 KB Output is correct
108 Correct 339 ms 272220 KB Output is correct
109 Correct 329 ms 272888 KB Output is correct
110 Correct 360 ms 273016 KB Output is correct
111 Correct 374 ms 272120 KB Output is correct
112 Correct 375 ms 272248 KB Output is correct
113 Correct 371 ms 272120 KB Output is correct
114 Correct 364 ms 272120 KB Output is correct
115 Correct 361 ms 271992 KB Output is correct