Skip to content

Commit 90f3953

Browse files
unknownunknown
authored andcommitted
fb hackercup 2013 r2 cake_cutting & roboelection
1 parent 50b014f commit 90f3953

File tree

7 files changed

+164
-0
lines changed

7 files changed

+164
-0
lines changed

HackerCup/2013/R2/cake_cutting.cpp

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
#include <iostream>
2+
#include <algorithm>
3+
#include <vector>
4+
using namespace std;
5+
6+
#define REP(i,n) for(int i=0;i<(n);++i)
7+
#define FOR(i,a,b) for(int i=(a);i<=(b);++i)
8+
#define INF 1000000000
9+
typedef long long LL;
10+
11+
void run() {
12+
int n;
13+
cin >> n;
14+
vector<LL> a(n);
15+
REP(i,n) cin >> a[i];
16+
LL n1 = 0, n2 = 0;
17+
REP(i,n) {
18+
n1 += a[i] + 1;
19+
n2 += a[i];
20+
}
21+
//cout << n1 << " " << n2 << endl;
22+
LL res = n1 * (n1 + 1) / 2 + 1;
23+
res -= n2 * 2;
24+
cout << res << endl;
25+
}
26+
27+
int main() {
28+
int m;
29+
cin >> m;
30+
FOR(i,1,m) {
31+
cout << "Case #" << i << ": ";
32+
run();
33+
}
34+
return 0;
35+
}

HackerCup/2013/R2/cake_cutting.out

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
Case #1: 73970
2+
Case #2: 2886103
3+
Case #3: 3337336
4+
Case #4: 229933490
5+
Case #5: 31343563
6+
Case #6: 63953
7+
Case #7: 1342
8+
Case #8: 155734976
9+
Case #9: 3290995
10+
Case #10: 698389451
11+
Case #11: 45063431
12+
Case #12: 49955170
13+
Case #13: 7
14+
Case #14: 54637991
15+
Case #15: 7
16+
Case #16: 185657015
17+
Case #17: 1051
18+
Case #18: 3438853
19+
Case #19: 10
20+
Case #20: 63

HackerCup/2013/R2/cake_cutting.txt

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
20
2+
25 2 20 16 1 15 15 14 27 26 5 16 9 13 17 24 15 12 15 14 27 14 14 3 20 7
3+
50 39 2 28 3 0 81 47 38 59 51 35 34 39 92 15 27 4 29 49 64 85 29 43 35 77 0 38 71 49 89 67 88 92 95 43 44 29 90 82 40 41 69 26 32 61 42 60 17 23 61
4+
50 11 42 32 96 79 21 70 84 72 27 34 40 83 72 98 30 63 47 50 30 73 14 59 22 47 24 82 35 32 4 54 43 98 86 40 78 59 62 62 83 41 48 23 24 72 22 54 35 21 57
5+
100 181 326 50 362 228 278 264 379 358 53 144 234 369 311 177 105 257 136 342 34 72 165 395 110 65 232 249 307 267 376 358 1 302 360 363 82 238 227 14 196 233 158 30 154 69 207 259 327 295 201 313 367 318 260 29 335 92 231 243 312 207 153 313 62 113 228 96 351 56 110 99 241 269 81 395 290 289 254 169 136 8 82 104 326 295 133 214 387 364 57 251 124 210 164 138 323 393 234 226 1
6+
80 75 34 178 47 13 133 115 60 131 14 185 147 100 97 158 79 99 63 129 134 66 164 85 25 15 236 180 126 142 116 129 69 2 159 116 15 145 83 178 26 97 113 26 50 62 36 129 13 100 8 147 166 25 232 44 40 70 76 18 65 44 249 134 46 158 103 62 53 186 92 182 34 57 60 84 119 96 65 234 196
7+
25 10 13 14 10 3 19 11 29 16 9 3 13 18 20 25 26 26 14 0 10 14 6 12 6 7
8+
8 9 3 1 9 4 7 8 4
9+
100 130 22 34 85 108 94 180 108 244 2 345 184 122 287 125 157 135 202 92 148 296 186 330 40 49 251 112 156 389 54 48 72 28 82 157 88 176 337 197 20 339 94 205 14 382 282 123 69 36 215 217 284 353 99 324 354 350 36 110 292 42 158 364 23 241 121 111 369 10 260 390 302 355 147 316 289 381 39 358 17 206 175 301 111 274 178 65 177 166 176 69 161 334 33 136 127 106 199 97 116
10+
50 40 42 98 13 98 90 24 90 9 81 19 36 32 55 94 4 79 69 73 76 50 55 60 42 79 84 93 5 21 67 4 13 61 54 26 59 44 2 2 6 84 21 42 68 28 89 72 8 58 98
11+
100 358 386 398 355 363 394 380 371 397 357 358 350 378 379 357 358 353 379 357 372 375 360 352 354 358 390 376 352 386 385 356 396 373 354 351 387 351 383 360 398 392 369 350 371 350 358 381 356 387 388 378 362 351 383 368 359 373 395 364 361 382 372 357 357 379 361 394 380 394 357 378 387 376 378 360 378 386 391 384 375 382 365 389 383 398 358 394 373 355 360 385 389 383 394 396 362 355 393 392 350
12+
80 164 23 1 99 1 30 89 204 165 236 52 125 79 91 47 157 234 131 61 169 181 53 28 177 244 69 43 81 123 18 187 139 143 188 238 144 70 180 98 236 18 2 213 98 195 10 5 179 142 66 98 175 222 228 103 216 47 248 47 22 16 86 162 159 127 150 53 197 182 3 35 201 107 248 49 154 111 156 84 3
13+
80 92 139 187 13 198 90 189 202 13 131 128 7 54 71 96 183 138 225 245 40 171 222 226 134 158 225 106 202 145 222 196 89 111 133 103 161 75 42 216 89 174 94 96 80 17 44 13 7 19 110 150 42 82 126 29 240 203 135 45 98 107 241 187 70 226 40 84 51 83 50 242 109 246 190 189 13 235 54 123 106
14+
2 1 1
15+
80 79 171 180 243 95 149 24 88 154 136 69 232 219 210 123 30 183 163 87 29 94 149 249 101 89 214 242 80 86 15 99 165 186 131 11 134 133 137 222 37 23 143 19 242 104 244 124 139 9 63 168 103 212 19 205 154 233 49 234 69 65 185 87 103 169 200 237 52 87 62 89 110 205 210 204 161 57 79 153 66
16+
3 0 0 0
17+
100 60 39 370 367 186 286 208 167 277 166 136 35 293 37 146 119 167 212 296 334 340 317 95 274 350 231 2 8 30 51 125 42 90 47 361 276 334 169 395 163 335 131 151 180 120 297 300 288 61 196 174 1 114 269 228 16 52 182 25 82 233 102 77 323 149 390 151 35 160 146 199 47 229 302 228 349 199 128 189 213 276 363 166 390 184 394 359 236 176 384 271 9 38 300 284 139 290 35 175 50
18+
8 0 6 2 6 1 8 7 9
19+
50 36 8 53 48 3 33 33 48 90 54 67 46 68 29 0 46 88 97 49 90 3 33 63 97 53 92 86 25 52 96 75 88 57 29 36 60 14 21 60 4 28 27 50 48 56 2 94 97 99 43
20+
2 1 2
21+
4 2 2 2 2

HackerCup/2013/R2/readme.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
https://www.facebook.com/hackercup/problems.php?round=499927843385312

HackerCup/2013/R2/roboelection.cpp

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
#include <iostream>
2+
#include <algorithm>
3+
#include <vector>
4+
using namespace std;
5+
6+
#define REP(i,n) for(int i=0;i<(n);++i)
7+
#define FOR(i,a,b) for(int i=(a);i<=(b);++i)
8+
#define INF 1000000000
9+
typedef long long LL;
10+
11+
LL run() {
12+
LL n, k, p, q;
13+
cin >> n >> k >> p;
14+
if (p == 100) {
15+
return (n + k - 1) / k;
16+
}
17+
if (k * 100 > p * n) return 1;
18+
q = 100 - p;
19+
LL x = (n % k);
20+
while (true) {
21+
LL m = 0;
22+
LL px = p * x, pk = p * k;
23+
if (100 * k < px) m = 0;
24+
else m = (100 * k - px) / pk;
25+
LL t = (m * k + x);
26+
if (t >= n) return 1;
27+
LL qk = q * k;
28+
LL s = (p * t + qk - 1) / qk;
29+
if (s * k + t > n) {
30+
LL a = (n - t) / k + 1;
31+
return a;
32+
}
33+
x = t + s * k;
34+
}
35+
return 1;
36+
}
37+
38+
int main() {
39+
int m;
40+
cin >> m;
41+
FOR(i,1,m) {
42+
cout << "Case #" << i << ": ";
43+
cout << run() << endl;
44+
}
45+
return 0;
46+
}

HackerCup/2013/R2/roboelection.out

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
Case #1: 243905664
2+
Case #2: 5606463140
3+
Case #3: 33850209
4+
Case #4: 1300120
5+
Case #5: 1
6+
Case #6: 12
7+
Case #7: 1
8+
Case #8: 5
9+
Case #9: 50
10+
Case #10: 1
11+
Case #11: 1
12+
Case #12: 2376257
13+
Case #13: 1
14+
Case #14: 63
15+
Case #15: 831148001
16+
Case #16: 77372696
17+
Case #17: 1
18+
Case #18: 1000000000000
19+
Case #19: 718120
20+
Case #20: 2322984462

HackerCup/2013/R2/roboelection.txt

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
20
2+
1000000000000 20 1
3+
1000000000000 1 1
4+
1000000000000 1000 10
5+
907375731931 244570 41
6+
1 1 1
7+
1499432098 32375818 25
8+
1 1 100
9+
597123856458 77781666384 75
10+
100 2 100
11+
1 1 50
12+
100 100 1
13+
971043562 113 62
14+
100 100 100
15+
100000 10 10
16+
1000000000000 3 1
17+
824885777525 842 23
18+
932484725 403621781 11
19+
1000000000000 1 100
20+
1519937086 845 86
21+
1000000000000 3 33

0 commit comments

Comments
 (0)