编号 题目 状态 分数 总时间 内存 代码 / 答案文件 提交者 提交时间
#11281 #1083. 1-11H. cyy的养殖基地 Accepted 100 341 ms 3384 K C++ 11 / 1.8 K Komeiji Koishi 2019-07-05 2:41:36
显示原始代码
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;
typedef long long ll;
struct node {
    ll x, tb;
} h, rs, ls, tp;
ll l, ans[100005], cnt = 0, uv, tot = 0, att, f, n, i, a[100005], b[100005], res, dir[100005], t;
node operator+(node a, node b) {
    node c;
    c.x = a.x + b.x;
    c.tb = a.tb + b.tb;
    if (c.tb == 2)
        c.x++, c.tb = 0;
    return c;
}
node operator-(node a, node b) {
    node c;
    c.x = a.x - b.x;
    c.tb = a.tb - b.tb;
    if (c.tb == -1)
        c.x--, c.tb = 1;
    return c;
}
node operator/(node a, node b) {
    ll u, v;
    node c;
    u = 2LL * a.x + a.tb;
    v = 2LL * b.x + b.tb;
    c.x = u / v;
    c.tb = 0;
    return c;
}
node div(node a) {
    if (a.x % 2)
        return (node){ a.x / 2LL, 1LL };
    else
        return (node){ a.x / 2LL, 0LL };
}
ll ad(ll p) {
    if (p == n)
        return 1;
    return p + 1;
}
int main() {
    scanf("%lld%lld%lld", &n, &l, &t);
    if (n == 1) {
        ll x, y;
        scanf("%lld%lld", &x, &y);
        if (y == 1)
            printf("%lld\n", (x + t) % l);
        else
            printf("%lld\n", (x - t % l + l) % l);
        return 0;
    }
    for (i = 1; i <= n; i++) scanf("%lld%lld", &a[i], &dir[i]);
    for (i = 2; i <= n; i++) {
        if (dir[i] == dir[1])
            continue;
        if (dir[1] == 0) {
            if (a[i] > a[1])
                res = a[i] - a[1];
            else
                res = l - a[1] + a[i];
        } else {
            if (a[i] > a[1])
                res = a[1] + l - a[i];
            else
                res = a[1] - a[i];
        }
        rs.x = res;
        rs.tb = 0;
        tot = 0;
        tp.x = t;
        tp.tb = 0;
        ls.x = l;
        ls.tb = 0;
        rs = div(rs);
        if ((tp / rs).x == 0)
            continue;
        tot = 1;
        tp = tp - rs;
        ls = div(ls);
        tot += (tp / ls).x;
        cnt += tot;
    }
    if (dir[1] == 0)
        att = 1;
    else
        att = 0, cnt = -cnt;
    for (i = 1; i <= n; i++) {
        if (dir[i] == 0)
            b[i] = (a[i] + t) % l;
        else
            b[i] = (a[i] - t % l + l) % l;
    }
    uv = b[1];
    sort(b + 1, b + n + 1);
    for (i = 1; i <= n; i++) {
        if (b[i] == uv) {
            if (b[ad(i)] != uv)
                break;
            else {
                if (att == 0)
                    break;
                else {
                    i = ad(i);
                    break;
                }
            }
        }
    }
    f = (1 + cnt % n + n) % n;
    for (; ans[f] == 0; ans[f] = b[i], f = ad(f), i = ad(i))
        ;
    for (i = 1; i <= n; i++) printf("%lld\n", ans[i]);
    return 0;
}
子任务 #1
Accepted
得分:100
测试点 #1
Accepted
得分:100
用时:35 ms
内存:3384 KiB

输入文件(1.in

100000 998244353 370658200
3249 1
5958 0
15268 0
18743 0
30131 0
30536 1
31190 1
43068 1
44
<1286392 bytes omitted>

答案文件(1.out

963640986
963647529
963648972
963664541
963678396
963688437
963690111
963691562
963691826
9
<1089704 bytes omitted>

用户输出

963640986
963647529
963648972
963664541
963678396
963688437
963690111
963691562
963691826
963696729
963707401
963714180
96371575
<989676 bytes omitted>

系统信息

Exited with return code 0
测试点 #2
Accepted
得分:100
用时:34 ms
内存:3332 KiB

输入文件(2.in

100000 998244353 259032187
973 0
8695 1
8793 1
26970 1
27830 1
27884 1
28060 1
28614 0
3047
<1286550 bytes omitted>

答案文件(2.out

968970690
968985268
969000750
969006440
969014015
969022789
969026336
969049521
969061583
9
<1089088 bytes omitted>

用户输出

968970690
968985268
969000750
969006440
969014015
969022789
969026336
969049521
969061583
969064885
969074936
969081088
96910027
<989060 bytes omitted>

系统信息

Exited with return code 0
测试点 #3
Accepted
得分:100
用时:35 ms
内存:3324 KiB

输入文件(3.in

100000 998244353 618369577
1262 0
4764 1
15810 1
16237 0
21859 0
25016 0
26080 1
26757 0
28
<1286541 bytes omitted>

答案文件(3.out

958300851
958303537
958312982
958314185
958317227
958328025
958338705
958353026
958353056
9
<1089571 bytes omitted>

用户输出

958300851
958303537
958312982
958314185
958317227
958328025
958338705
958353026
958353056
958355864
958360635
958385721
95838676
<989543 bytes omitted>

系统信息

Exited with return code 0
测试点 #4
Accepted
得分:100
用时:33 ms
内存:3268 KiB

输入文件(4.in

100000 998244353 923804665
14 0
3607 1
9820 1
17575 1
23346 0
27348 1
39489 1
42937 0
47750
<1286568 bytes omitted>

答案文件(4.out

992976324
992980198
992982711
993003518
993018196
993023489
993023665
993039682
993043578
9
<1087739 bytes omitted>

用户输出

992976324
992980198
992982711
993003518
993018196
993023489
993023665
993039682
993043578
993045462
993048318
993052940
99308469
<987711 bytes omitted>

系统信息

Exited with return code 0
测试点 #5
Accepted
得分:100
用时:36 ms
内存:3284 KiB

输入文件(5.in

100000 998244353 480488996
450 1
4114 0
6471 1
11407 0
11417 0
11814 1
17465 1
20652 1
3811
<1286610 bytes omitted>

答案文件(5.out

956869343
956880971
956883576
956889311
956891388
956923515
956936955
956963087
956969407
9
<1089581 bytes omitted>

用户输出

956869343
956880971
956883576
956889311
956891388
956923515
956936955
956963087
956969407
956981758
956982122
956989484
95700601
<989553 bytes omitted>

系统信息

Exited with return code 0
测试点 #6
Accepted
得分:100
用时:33 ms
内存:3312 KiB

输入文件(6.in

100000 998244353 656347456
1933 0
2401 1
4216 1
12425 1
12655 1
31595 1
44159 0
59645 1
719
<1286578 bytes omitted>

答案文件(6.out

959848304
959848920
959883236
959887696
959890983
959897802
959901781
959905654
959923040
9
<1089576 bytes omitted>

用户输出

959848304
959848920
959883236
959887696
959890983
959897802
959901781
959905654
959923040
959955460
959958314
959962743
95999217
<989548 bytes omitted>

系统信息

Exited with return code 0
测试点 #7
Accepted
得分:100
用时:34 ms
内存:3284 KiB

输入文件(7.in

100000 998244353 431018430
2959 1
4886 1
10108 0
12002 1
24529 1
30944 0
32795 1
38726 0
39
<1286632 bytes omitted>

答案文件(7.out

959624346
959626714
959627639
959634515
959659634
959685927
959708253
959716717
959724554
9
<1089727 bytes omitted>

用户输出

959624346
959626714
959627639
959634515
959659634
959685927
959708253
959716717
959724554
959749451
959755314
959757485
95976460
<989699 bytes omitted>

系统信息

Exited with return code 0
测试点 #8
Accepted
得分:100
用时:33 ms
内存:3308 KiB

输入文件(8.in

100000 998244353 319621928
920 1
2689 1
4337 1
14195 1
20522 1
27723 1
29399 1
32100 1
3240
<1286722 bytes omitted>

答案文件(8.out

963563526
963574403
963581375
963586071
963593720
963625184
963628993
963635157
963658997
9
<1089625 bytes omitted>

用户输出

963563526
963574403
963581375
963586071
963593720
963625184
963628993
963635157
963658997
963661020
963673160
963682372
96369132
<989597 bytes omitted>

系统信息

Exited with return code 0
测试点 #9
Accepted
得分:100
用时:34 ms
内存:3268 KiB

输入文件(9.in

100000 998244353 809038923
13455 0
23657 1
26274 0
28621 1
40705 0
43285 1
45962 1
54717 0

<1286548 bytes omitted>

答案文件(9.out

972540971
972558206
972576267
972581465
972590046
972591794
972593535
972601533
972606179
9
<1088129 bytes omitted>

用户输出

972540971
972558206
972576267
972581465
972590046
972591794
972593535
972601533
972606179
972618106
972620923
972642174
97265884
<988101 bytes omitted>

系统信息

Exited with return code 0
测试点 #10
Accepted
得分:100
用时:34 ms
内存:3320 KiB

输入文件(10.in

100000 998244353 689781397
9598 0
17298 0
26077 0
30356 0
33613 0
39463 0
40528 0
45683 1
5
<1286512 bytes omitted>

答案文件(10.out

966345689
966350020
966367113
966375283
966380815
966391273
966399996
966409950
966410747
9
<1089506 bytes omitted>

用户输出

966345689
966350020
966367113
966375283
966380815
966391273
966399996
966409950
966410747
966419037
966430606
966431315
96643481
<989478 bytes omitted>

系统信息

Exited with return code 0