社区讨论
可怜的P1083的代码(ACon#8)求调
P1083[NOIP 2012 提高组] 借教室参与者 3已保存回复 16
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 16 条
- 当前快照
- 1 份
- 快照标识符
- @mhjiabgc
- 此快照首次捕获于
- 2025/11/04 03:01 4 个月前
- 此快照最后确认于
- 2025/11/04 06:25 4 个月前
主诉:
- 不知道该怎么调了,简直跟第一篇题解一样了。
- 样例是对的
诉求:
-
在源代码上改是最好喵!
-
回复请@楼主
#include<bits/stdc++.h>
using namespace std;
#define itn int
// #define int long long
#define scnaf scanf
int n,m;
int r[1000005];
int d[1000005],s[1000005],t[1000005];
int c[1000005];
int q[1000005];
bool iff(itn x)
{
memset(c,0,sizeof(c));
for(int i=1;i<=x;i++)
c[s[x]]=c[s[x]]+d[i],c[t[x]+1]=c[t[x]+1]-d[i];
for(int i=1;i<=n;i++)
q[i]=q[i-1]+c[i];
for(int i=1;i<=n;i++)
if(q[i]>r[i])
return 0;
return 1;
}
signed main()
{
scanf("%d %d",&n,&m);
for(int i=1;i<=n;i++)
scanf("%d",&r[i]);
for(int i=1;i<=m;i++)
scanf("%d %d %d",&d[i],&s[i],&t[i]);
int l=1,r=m,mid;
if(iff(m))
{
printf("0");
return 0;
}
while(l<r)
{
mid=(l+r)/2;
if(iff(mid))
l=mid+1;
else
r=mid;
}
printf("-1\n%d",l);
return 0;
}
回复
共 16 条回复,欢迎继续交流。
正在加载回复...