1 条题解
-
0赵青海 (huhe) LV 7 SU @ 2022-8-25 20:23:01
#include <stdio.h> #include <string.h> #include <algorithm> int read() { int x=0,v=1; char ch=getchar(); for (;ch<'0'||ch>'9';v=(ch=='-')?(-1):(v),ch=getchar()); for (;ch<='9'&&ch>='0';x=x*10+ch-'0',ch=getchar()); return x*v; } #define rep(i,st,ed) for (int i=st;i<=ed;++i) #define fi first #define se second typedef std:: pair <int,int> pair; const int N=600005; pair t[N]; int a[N]; void solve() { int s=read(),k=read(),n=read(); int sum=0,tot=0; bool flag=true; rep(i,1,n) a[i]=read(); rep(i,1,n) { sum+=a[i]; if (i&1) { if (a[i]>=k) flag=false; int l=sum-a[i],r=sum-1; sum%=k; if ((l/k)<(r/k)) { t[++tot]=pair(l%k,k-1); t[++tot]=pair(0,r%k); } else t[++tot]=pair(l%k,r%k); } } std:: sort(t+1,t+tot+1); int ans=0,j=-1; for (int i=1;i<=tot;i++) { ans=std:: max(t[i].fi-j-1,ans); j=std:: max(j,t[i].se); } ans=std:: max(t[1].fi+k-1-j,ans); (ans>=s&&flag)?puts("TAK"):puts("NIE"); } int main(void) { for (int T=read();T--;) solve(); return 0; }
- 1
信息
- ID
- 2707
- 时间
- 2000ms
- 内存
- 256MiB
- 难度
- 9
- 标签
- 递交数
- 20
- 已通过
- 4
- 上传者