QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#114252#5980. River FlowKindred27 ✓5ms3692kbC++141.2kb2023-06-21 18:49:232023-06-21 18:49:25

Judging History

你现在查看的是最新测评结果

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2023-06-21 18:49:25]
  • 评测
  • 测评结果:27
  • 用时:5ms
  • 内存:3692kb
  • [2023-06-21 18:49:23]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const LL N = 5010;
inline LL read()
{
  LL p=0; LL f=1; char ch=getchar();
  while(ch<'0' || ch>'9'){if(ch=='-') f=-1; ch=getchar();}
  while(ch>='0' && ch<='9'){p=p*10+ch-'0'; ch=getchar();}
  return p*f;
}
LL n,d,a[N],h[N];
int main()
{
  LL t = read();
  for(LL Tcase=1;Tcase<=t;Tcase++)
  {
    printf("Case #%lld: ",Tcase);
    n = read(); d = read(); d<<=1; bool bk = 1;
    LL sum = 0; for(LL i=1;i<=n;i++) a[i] = read();
    for(LL i=1;i<=n;i++) for(LL j=i;j<=n;j+=d) if(a[i] != a[j]){bk = 0;}
    n = d; h[1] = a[1] - a[n]; for(LL i=2;i<=n;i++) h[i] = a[i] - a[i-1];
    sum = 0; for(int i=1;i<=n;i++) sum += a[i];
    if(!bk){printf("CHEATERS!\n"); continue;}
    LL ans = 0;
    for(LL i=d/2;i>=1;i>>=1)
    {
      for(LL j=1;j<=i;j++)
      {
        LL s = abs(h[j] - h[j+i]);
        if(s&1){bk = 0; break;}
        else
        {
          if(h[j] < h[j+i]) h[j] += s/2,h[j+i] -= s/2;
          else h[j] -= s/2,h[j+i] += s/2;
          ans+=s/2; sum -= s/2 * n/2;
        }
      }
      if(!bk) break;
    }
    if(!bk || sum < 0){printf("CHEATERS!\n"); continue;}
    else printf("%lld\n",ans);
  }
  return 0;
}

详细

Subtask #1:

score: 10
Accepted

Test #1:

score: 10
Accepted
time: 1ms
memory: 3620kb

input:

50
48 16
2 2 2 3 3 1 1 2 2 1 1 2 2 3 3 4 4 4 4 5 5 3 3 4 4 1 1 2 2 1 1 2 2 2 2 3 3 1 1 2 2 1 1 2 2 3 3 4
24 2
3 1 4 2 3 1 4 2 3 1 4 2 3 1 4 2 3 1 4 2 3 1 4 2
41 8
3 2 2 1 1 5 5 4 4 3 3 2 2 4 4 3 3 2 2 1 1 5 5 4 4 3 3 2 2 4 4 3 3 2 2 1 1 5 5 4 4
48 8
3 3 2 3 4 4 5 5 5 5 4 3 2 2 3 3 3 3 2 3 4 4 5 5 5 ...

output:

Case #1: 5
Case #2: 3
Case #3: 4
Case #4: 3
Case #5: 2
Case #6: 5
Case #7: 0
Case #8: 2
Case #9: 6
Case #10: 4
Case #11: 4
Case #12: 4
Case #13: CHEATERS!
Case #14: 5
Case #15: 6
Case #16: 4
Case #17: 3
Case #18: CHEATERS!
Case #19: 4
Case #20: 6
Case #21: 1
Case #22: CHEATERS!
Case #23: CHEATERS!
C...

result:

ok 50 lines

Subtask #2:

score: 17
Accepted

Test #2:

score: 17
Accepted
time: 5ms
memory: 3692kb

input:

50
36 8
4 3 3 4 4 4 4 4 4 1 1 4 4 4 4 4 4 3 3 4 4 4 4 4 4 1 1 4 4 4 4 4 4 3 3 4
4160 256
939 964 941 954 947 954 926 950 954 962 954 944 927 940 899 904 917 935 914 926 922 942 920 954 943 945 931 936 932 951 915 932 949 966 950 957 955 960 932 958 957 955 944 944 932 938 900 911 932 952 927 930 928...

output:

Case #1: 5
Case #2: 545
Case #3: 836
Case #4: 617
Case #5: 582
Case #6: 401
Case #7: CHEATERS!
Case #8: 0
Case #9: 0
Case #10: 232
Case #11: 142
Case #12: 83
Case #13: 310
Case #14: CHEATERS!
Case #15: 2
Case #16: CHEATERS!
Case #17: 776
Case #18: 355
Case #19: 329
Case #20: 496
Case #21: CHEATERS!
...

result:

ok 50 lines

Extra Test:

score: 0
Extra Test Passed